如何搜索(使用find命令)目录并将所有文件和目录本身复制到linux中的另一个目录? 以下是我到目前为止的情况:
find -type d -name "*.ABC" -exec {} /Desktop/NewFile \;
我得到这个作为输出:
find: './GAE/.ABC: PERMISSION DENIED
请帮助,谢谢!
答案 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。