我想将文件夹内的所有文件(但不是文件夹)移动到另一个目录。
我一直在使用这个命令:
find . -maxdepth 1 -type f -exec mv {} destination_folder \;
但现在我想移动除以“exe_”开头的文件之外的所有文件,所以我尝试了:
find . -maxdepth 1 -type f -exec mv !(exe_*) part1a_si_atom-exp001 \;
但现在它也移动目录。我能做些什么?
答案1
!(exe_*)
在运行 find 命令之前,它会被 shell 解释并展开。相反,尝试使用该-name
标志来查找:
find . -maxdepth 1 -type f -not -name 'exe_*' -exec mv {} destination_folder \;
我还建议使用+
而不是;
作为命令的终止符-exec
以减少开销。