Sea*_*ean 91
rsync
对于本地文件复制以及计算机之间的复制非常有用.这将做你想要的:
rsync -avm --include='*.jar' -f 'hide,! */' . /destination_dir
整个目录结构来自.复制到/ destination_dir,但只复制.jar文件.-a确保文件的所有权限和时间不变.-m将省略空目录.-v用于详细输出.
对于干运行添加一个-n,它会告诉你它会做什么但不会实际复制任何东西.
uzs*_*olt 34
如果您不需要目录结构只有jar文件,您可以使用:
shopt -s globstar
cp **/*.jar destination_dir
Run Code Online (Sandbox Code Playgroud)
如果你想要的目录结构,你可以检查cp
的--parents
选项.
use*_*own 17
如果你的find有一个-exec开关,那么cp和-t选项:
find . -name "*.jar" -exec cp -t /destination_dir {} +
Run Code Online (Sandbox Code Playgroud)
如果发现没有为并行调用提供"+",则可以使用";" 但是你可以省略-t
:
find . -name "*.jar" -exec cp {} /destination_dir ";"
Run Code Online (Sandbox Code Playgroud)
cp --parents `find -name \*.jar` destination/
Run Code Online (Sandbox Code Playgroud)
来自man cp
:
--parents
use full source file name under DIRECTORY
Run Code Online (Sandbox Code Playgroud)