使用 Bash 查找并复制文件[重复]

问题描述 投票:0回答:6

任何人都有一种在 bash 中查找和复制文件的替代方法:

find . -ctime -15 | awk '{print "cp " $1 " ../otherfolder/"}' | sh

我喜欢这种方式,因为它很灵活,因为我正在构建我的命令(可以是任何命令)并在之后执行它。

还有其他方法可以将命令简化为文件列表吗?

linux bash copy find
6个回答
131
投票

我建议使用

find
-exec
选项:

find . -ctime 15 -exec cp {} ../otherfolder \;

一如既往,请查阅联机帮助页以获得最佳结果。


18
投票

我通常用这个:

find . -ctime -15 -exec cp {} ../otherfolder/ \;

13
投票

如果您的

cp
是 GNU 的:

find . -ctime 15 -print0 | xargs --no-run-if-empty -0 cp --target-directory=../otherfolder

10
投票

你可以用

xargs
来做到这一点:

$ find . -ctime 15 -print0 | xargs -0 -I{} cp {} ../otherfolder

另请参阅 shell 脚本中的 grep 实用程序


4
投票

用它来复印和许多其他事情:

for f in $(find /apps -type f -name 'foo'); do cp ${f} ${f}.bak; cmd2; cmd3; done;

-3
投票

-exec 可能是最佳选择,除非您有太多文件。然后使用 xargs。

© www.soinside.com 2019 - 2024. All rights reserved.