“cp:省略目录”是什么意思?

MEM*_*MEM 459 directory cp coreutils

我发出了以下命令:

sudo cp ~/Transfers/ZendFramework-1.11.4-minimal/library/Zend/* ~/public_html/cmsk.dev/library/
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我开始收到以下消息:

cp: omitting directory `Tag' 
cp: omitting directory `Test' 
cp: omitting directory `Text' 
cp: omitting directory `TimeSync' 
cp: omitting directory `Tool' 
cp: omitting directory `Translate' 
cp: omitting directory `Uri' 
cp: omitting directory `Validate' 
Run Code Online (Sandbox Code Playgroud)

等等...

为什么我会收到这些消息?

Lek*_*eyn 602

默认情况下,cp只复制目录中的直接文件,而不复制目录中的子目录。该消息cp: omitting directory 'directory'警告您未复制提到的目录。

为此,请指定-r(或--recursive)选项:

sudo cp -r ~/Transfers/ZendFramework-1.11.4-minimal/library/Zend/* ~/public_html/cmsk.dev/library/
Run Code Online (Sandbox Code Playgroud)

手册页(命令:man cp),其中包含可用选项的概述。

  • @MEM:`*` 由 Bash 扩展,而不是由 `cp` 扩展。通过将 `echo ` 放在你的命令前面来测试它。展开时,它匹配前面带有 `...library/Zend/` 的所有内容(其中的文件和目录)。 (11认同)
  • 非常感谢。我认为 * 会以某种方式递归处理它。但不是。:D 再次感谢。:) (2认同)

Rog*_*ght 42

该消息意味着cp尚未复制列出的目录。这是默认行为cp- 只有文件被正常复制,无论您是明确指定它们还是使用*. 如果您想复制目录,请使用-r表示“递归”的开关。


小智 16

这里有几件事需要检查:

  1. 不要使用sudo. 您不需要它,您已经有权在自己的主目录中写入内容。

  2. 通过从菜单中选择查看/显示隐藏文件,您可以轻松地在图形文件管理器中查看隐藏的文件和目录。或者按Ctrl- H

  3. 您需要使用命令中的-R选项cp来复制目录及其内容。

  4. /home 不是您的主目录。/home/用户名是。所以你可能试图从错误的地方复制。

  5. shell 区分大小写,所以 ~/downloads 和 ~/Downloads 是两个不同的东西。