只移动文件,不移动目录?

只移动文件,不移动目录?

我想将文件夹内的所有文件(但不是文件夹)移动到另一个目录。

我一直在使用这个命令:

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以减少开销。

相关内容