如何搜索一个文件并移动到多个目标目录?

如何搜索一个文件并移动到多个目标目录?

如何使用 find 命令搜索单个文件并移动到多个文件夹?

我尝试了以下命令,但没有运气。

find /export/logs/tmp/logs/* -type f -name f_apec_`echo $(date  +"%Y-%m-%d")`_1 -exec mv -v {} /export/logs/nucleus1/ /export/logs/nucleus2/ \;

答案1

您无法将文件移动到多个目录,但可以将其复制到所有目标,并使用您自己的命令将其移动到最后一个。

find /export/logs/tmp/logs/ -type f -name "f_apec_$(date +"%Y-%m-%d")_1" -exec echo cp -v '{}' /export/logs/nucleus1/ \; -exec echo mv -v '{}' /export/logs/nucleus2/ \;

您还可以使用以下命令将文件复制到多个目录xargs

echo dir1/ dir2/ dir3/ | xargs -n1 cp /path/to/Onefile

答案2

首先,您使用的是mv移动文件,而不是复制它。您需要使用cp,但cp可以将多个文件复制到单个目标。

您需要执行cp多次。您可以使用的一种解决方案是创建一个简单的脚本,将参数复制到多个目标。然后在您的find .. -exec {}命令中以该文件作为参数运行脚本,并在脚本中多次复制它。

相关内容