Command-Line

創建大量範圍或文件夾/目錄塊?

  • March 1, 2019

$$ EDITED to reflect answers below $$ 我正在尋找一種從命令行或腳本創建文件夾/目錄塊的方法,該腳本將生成名為“200000-209999”的頂級文件夾,然後在該文件夾內,子文件夾因此命名:

200000-200499
200500-200999
201000-201499
... etc ...
... etc ...
208500-208999
209000-209499
209500-209999

如您所見,命名是間隔的,然後我想設置下一批頂級/子文件夾,“210000-219999”、“220000-229999”等。

$$ EDIT $$ 我根據以下答案提出了以下腳本,以完成我正在尋找的內容。我的補充可能不是優雅的腳本,所以如果可以改進,請告訴我。

#!/bin/bash
#
# mkfolders.sh
#
#    Ask user for starting range of job #'s and create the subsequent
#    folder hiearchy to contain them all.
#
###

clear
read -p 'Starting Job# in range: ' jobnum
mkdir "${jobnum}"-"$((jobnum + 9999))"
for start in $(seq $jobnum 500 $((jobnum+9999))); do mkdir "${jobnum}"-"$((jobnum + 9999))"/"${start}"-"$((start + 499))"; done
echo
echo Done!
echo

seq實用程序是生成數字的一種方法:

for start in $(seq 200000 500 209000); do mkdir "${start}"-"$((start + 499))"; done

語法是seq start increment end.

簡單的外殼方法是這樣的:

$ i=200000; while [ "$i" -ne 210000 ];do  echo ${i}-$((i+499)); i=$((i+500)); done

替換echomkdir以創建實際文件夾。此循環應在您打算放置文件夾的目錄中執行,因此請先確保您cd在那裡。

引用自:https://unix.stackexchange.com/questions/497585