我有分布在给定路径中的多个目录之间的文档,例如/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
您不能递归复制文件,只能复制文件夹。