
我正在編寫一個腳本來建立一個以今天的日期 (yyyy_mm_dd) 命名的目錄,然後將所有以今天的日期結尾的檔案移到該目錄。有沒有更好的方法將檔案移到目錄,因為我所做的也選擇了目錄。
now=$(date '+%Y_%m_%d')
mkdir $now
mv *$now $now/
答案1
mv *?"$now" "$now/."
?
將透過要求時間戳前面至少有一個字元 ( ) 來確保您剛剛建立的目錄不會被選擇進行移動。
答案2
此find
命令可以過濾文件類型和文件名。
所以我認為這會做你想要的:
now=$(date '+%Y_%m_%d')
find . -name "*$now" -type f -print0 | xargs -0 mv -t $now/
不過,在大批量運行之前,您可能需要考慮檔案名稱中是否存在任何奇怪之處(例如包含日期字串的其他目錄)。