Linux
創建腳本以根據日期或文件名移動文件
我有一個不斷將文件放入目錄的 FTP 程序。創建的日期是文件名的一部分,格式如下:
YYYY-MM-DD-HH-MM-SS-xxxxxxxxxx.wav
我想根據文件的創建日期將文件移動到另一個目錄。我可以使用文件名或日期戳,哪個更容易。只需要考慮月份和年份。我使用以下格式創建了目錄:
Jan_2016 Feb_2016
我一直在創建目錄並手動移動文件,但我想使用 bash 腳本自動執行此操作,如果該目錄不存在,該腳本將創建該目錄。
到目前為止我一直在做的是手動創建目錄,然後執行這個命令:
mv ./2016-02*.wav Feb_2016/
### capitalization is important. Space separated. ### Null is a month 0 space filler and has to be there for ease of use later. MONTHS=(Null Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec) cd /your/ftp/dir ### pretty obvious I think for file in *.wav ### we are going to loop for .wav files do ### start of your loop ### your file format is YYYY-MM-DD-HH-MM-SS-xxxxxxxxxx.wav so ### get the year and month out of filename year=$(echo ${file} | cut -d"-" -f1) month=$(echo ${file} | cut -d"-" -f2) ### create the variable for store directory name STOREDIR=${year}_${MONTHS[${month}]} if [ -d ${STOREDIR} ] ### if the directory exists then mv ${file} ${STOREDIR} ### move the file elif ### the directory doesn't exist mkdir ${STOREDIR} ### create it mv ${file} ${STOREDIR} ### then move the file fi ### close if statement done ### close the for loop.
對於沒有經驗的人來說,這應該是一個很好的起點。嘗試根據這些說明和命令編寫腳本。如果遇到困難,您可以尋求幫助