如何搜索(使用find命令)目录并将所有文件和目录本身复制到linux中的另一个目录?

时间:2016-02-19 01:24:16

标签: linux

如何搜索(使用find命令)目录并将所有文件和目录本身复制到linux中的另一个目录? 以下是我到目前为止的情况:

find -type d -name "*.ABC" -exec {} /Desktop/NewFile \;

我得到这个作为输出:

find: './GAE/.ABC: PERMISSION DENIED

请帮助,谢谢!

2 个答案:

答案 0 :(得分:1)

上述错误与文件读取权限无关。您正在尝试执行您找到的目录!避免以root或sudo运行命令,除非:(1)你真的需要它,(2)你真的知道你在做什么。很多时候,人们要求root或sudo权限的确是不应该拥有它的人。

那说......有几种方法可以在* nix下复制目录树。这只是一种可能的方法:

$ find <start> -type d -name \*.ABC -exec cp -av {} <target> \;

其中:

  • <start>是目录名称。它用于告诉find从哪里开始搜索(例如/usr/local$HOME
  • <target>是另一个目录名,用于定义复制目录的最终目的地

<强>更新

如果您想搜索多条路径......

$ find <start> -type d \( -name \*.ABC -o -name \*.DEF \) -exec cp -av {} <target> \;

答案 1 :(得分:0)

这应该有效:

find ./source_dir -name \*.png -print0 | xargs -0 cp -t path/to/destination

有关详细信息,您可以查找here