我有一个文件夹工作,下面的脚本搜索.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' \` " \;
答案 0 :(得分:2)
如果您不希望在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