任何人有在bash比发现和复制文件的另一种方法:击:找到并复制
find . -ctime -15 | awk '{print "cp " $1 " ../otherfolder/"}' | sh
我喜欢这种方式,因为它是灵活的,因为我建立我的命令(可通过任何命令),然后执行它。
是否有其他方法可以简化命令到文件列表?
感谢
任何人有在bash比发现和复制文件的另一种方法:击:找到并复制
find . -ctime -15 | awk '{print "cp " $1 " ../otherfolder/"}' | sh
我喜欢这种方式,因为它是灵活的,因为我建立我的命令(可通过任何命令),然后执行它。
是否有其他方法可以简化命令到文件列表?
感谢
我通常使用这一个:
find . -ctime -15 -exec cp {} ../otherfolder/ \;
-exec很可能要走的路,除非你有太多的文件。然后使用xargs。
你可以用xargs
做到这一点:
$ find . -ctime 15 -print0 | xargs -0 -I{} cp {} ../otherfolder
这比'find -exec'更快,因为它不会为每个文件创建一个新的'cp'过程。但是,如果你有GNU find,你可以执行'find -exec ... +'而不是'find -exec ...';''获得相同的效果:) – hobbs 2009-10-14 07:18:54
如果您cp
是GNU的:
使用此用于复制和许多其他的事情:
for f in (find /apps -type f -name 'foo'); do cp ${f} ${f}.bak; cmd2; cmd3; done;
类似的Q&A 1 + 1/2年后:http://stackoverflow.com/ q/5241625/1172302 – 2012-08-15 04:27:54