簡體   English   中英

Unix 腳本將文件移動到文件夾

[英]Unix script moving files to folders

我有一個文件夾工作,下面的腳本搜索 .txt 或 .csv 文件並將文件移動到已完成的文件夾中。 我在工作文件夾中又創建了一個文件夾 (APEX),但是 APEX 文件夾中的文件沒有移動到已完成的文件夾並出現以下錯誤。 我想將 my-test-folder/work 和 my-test-folder/work/APEX 文件中的所有 .txt 或 .csv 文件移動到 my-test-folder/done.I 沒有文件夾 /my -test-folder/completed/APEX/ ,我也不希望將文件移動到那里。

錯誤:mv:無法將./my-test-folder/work/APEX/test1.txt移動到./my-test-folder/completed/APEX/test1.txt :沒有這樣的文件或目錄

 find .  -path "*work*" \( -iname "*.txt" -o -iname "*.csv" \) -exec bash -c "mv {} \`echo {} | sed -e 's/work/completed/g' \` "  \;

如果您不想在my-test-folder/completed中保持與my-test-folder/work相同的目錄層次結構,您可以簡化您的命令:

find full/path/to/work -iname "*.txt" -o -iname "*.csv" -exec mv "{}" full/path/to/completed \;

請注意,這不會刪除移出所有文件后留下的空目錄。 如果您使用帶有以下命令的 GNU find,則可以執行此操作:

find work -empty -delete

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM