在 Linux 中使用 find 命令时,是否需要在 cp 命令中使用 -r?

在 Linux 中使用 find 命令时,是否需要在 cp 命令中使用 -r?

我有分布在给定路径中的多个目录之间的文档,例如/media/设备名称/目录名称。我使用该find命令来帮助定位某些文件.doc, docx,例如等

find . -type f -regextype posix-egrep -regex '.*/.*/.*\.(doc|docx)' -exec cp -r {} somedirectory \;

我知道cp -r如果我从给定目录复制文件就会使用该命令,但是就我的find命令而言,它是否必要,如果是或否,为什么?

答案1

cp 中的 -r 标志代表递归。复制整个文件夹时可以使用它,因为它指示 cp 深入文件夹并递归地复制其中找到的所有内容。

如果您只是复制单个文件,则无需执行此操作,因为它们(概念上)是一个实体。正如 Ярослав Рахматуллин 所说,在单个文件上递归运行 cp 毫无意义,因为没有什么可递归的。

http://en.wikipedia.org/wiki/Recursion

或输入man cp更多信息。

答案2

您不能递归复制文件,只能复制文件夹。

相关内容