Newbie-ish错误:cp:省略目录

时间:2015-12-15 11:48:46

标签: linux shell find

拉我的头发,因为我遇到了一个基本的错误而不理解原因:

find . -type f -exec cp del {} \;

我们在一个“测试”目录中,我在其中创建了一个“del”子目录。 “test”目录包含各种类型的各种文件。

结果是一系列行(与运行命令的目录中存在的文件数相同):

cp: omitting directory `del'

可能有用的细节如下。

  • Debian Wheezy,标准shell接口。
  • 作为更复杂的排除和执行模式的前奏,我想从这个基本测试开始......并且有这个。
  • 我认为我用“type -f”排除了“del”目录,所以我不是要求Linux在其内部移动目录。
  • 没有其他目录或子目录。
  • 权限:一切都属于当前用户。
  • 我为“cp del”部分制作了变体,用简单或双引号,或使用./del,没有区别。

我也试过-R

find . -type f -name '*script1*' -exec cp -R ./del {} \;

这给了:

cp: cannot overwrite non-directory `./script1' with directory `./del'

-r

相同

1 个答案:

答案 0 :(得分:1)

如果您要做的是将find命令找到的一些文件复制到del目录,那么您可以这样做:

find . -type f | xargs cp -T del/

或者像这样:

find . -type f -exec cp {} del \;