如何使用 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 {}
命令中以该文件作为参数运行脚本,并在脚本中多次复制它。