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

362

我发出了以下命令:

sudo cp ~/Transfers/ZendFramework-1.11.4-minimal/library/Zend/* ~/public_html/cmsk.dev/library/

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

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' 

依旧......

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

    
MEM 18.04.2011 - 17:11

6 答案

473

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

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

sudo cp -r ~/Transfers/ZendFramework-1.11.4-minimal/library/Zend/* ~/public_html/cmsk.dev/library/

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

    
给出答案 Lekensteyn 18.04.2011 - 17:15
34

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

    
给出答案 Roger Light 18.04.2011 - 17:15
14

这里有一些需要检查的事情:

  1. 请勿使用 sudo 。你不需要它,你已经拥有在你自己的主目录中写东西的权限。

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

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

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

  5. shell区分大小写,所以〜/ downloads和〜/ Downloads是两回事。

给出答案 Nikunj K. 04.10.2013 - 09:02
2

复制目录时:

cp dir1 copy_of_dir1

您只是正在复制 dir1 本身而不是其中的文件,因此最后您将得到一个新的目录结构,而结构不存在。

换句话说,在复制后,它会说我的内容是 file1file2 等;但是,这些文件尚未复制,因此不存在。

所以要解决这个问题可能会出现 cp 默认情况下不会复制目录并跳过它们,除非你指定 -r 选项,它也会递归复制所有文件。

    
给出答案 Ravexina 03.07.2017 - 09:47
1

它说 omitting directory 的原因是因为 cp 和我所知道的所有复制实用程序在开始复制文件之前创建了要复制的文件和子目录列表。缺少 --recursive 选项时,子目录会从此列表中删除。因此,省略是指从副本列表中删除,而不是从源媒体中删除。我相信这解决了信息的含义。

    
给出答案 endrias 24.07.2017 - 10:32
-1

假设您有两个目录'Tag'& '测试'

如果要将'Tag'目录复制到'Test'目录,请使用命令

$ : cp -r Tag Test (case sensitive)

如果没有,大部分问题将通过上述代码解决,并且您会收到

之类的消息
cp: omitting directory 'Tag' 
cp: omitting directory 'Test'

然后在'Tag'目录中添加一些文件,然后将它们复制到'Test'。实际上我有同样的问题,但解决了我所说的其次。

    
给出答案 jainmiah shaik 03.07.2017 - 09:14

阅读有关标签的其他问题