我正在尝试复制所有.odt
文件,包括子目录中的文件。
cp -r ~/Documents/* ~/copies # works as expected
cp -r ~/Documents/*.odt ~/copies # does not work as expected
第一行将复制所有文件和所有子目录,但第二行将仅复制子目录中的.odt
文件~/Documents
,不复制子目录中的文件。
我正在尝试复制所有.odt
文件,包括子目录中的文件。
cp -r ~/Documents/* ~/copies # works as expected
cp -r ~/Documents/*.odt ~/copies # does not work as expected
第一行将复制所有文件和所有子目录,但第二行将仅复制子目录中的.odt
文件~/Documents
,不复制子目录中的文件。
您可以让 (bash) shell 执行递归:
或使用
find
命令如果文件的数量非常大,前者可能会超过系统的
ARG_MAX
限制,而后者会将命令分解以保持在ARG_MAX
.我添加了
-n
防止“破坏”同名文件的选项。如果您希望复制目录结构(更像是
cp -r
steeldriver 建议的那样)但只用文件填充它,.odt
您可以使用'filter' 选项来完成。其他选项更直接。您可以在 中找到所有选项。rsync
-f
man rsync
-n
使用 'dry run' 选项和 verbose 选项是一个好主意-v
,以便查看在运行实际命令之前将执行的操作(何时从命令行n
中删除)。