find . -ctime -15 | awk '{print "cp " $1 " ../otherfolder/"}' | sh
我喜欢这种方式,因为它是灵活的,因为我build立我的命令(可以通过任何命令),并执行它。
有没有其他的方法来简化命令到文件列表?
谢谢
我会建议使用find
的-exec
选项:
find . -ctime 15 -exec cp {} ../otherfolder \;
一如既往,请查阅联机帮助手册以获得最佳效果。
我通常使用这个:
find . -ctime -15 -exec cp {} ../otherfolder/ \;
如果你的cp
是GNU的:
find . -ctime 15 -print0 | xargs -0 cp --target-directory=../otherfolder
你可以用xargs
来做:
$ find . -ctime 15 -print0 | xargs -0 -I{} cp {} ../otherfolder
另请参阅shell脚本中的grep实用程序 。
使用这个副本和许多其他的东西:
for f in (find /apps -type f -name 'foo'); do cp ${f} ${f}.bak; cmd2; cmd3; done;
-exec可能是要走的路,除非你有太多的文件。 然后使用xargs。