我发出了以下命令:
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'
等等...
我为什么会收到这些消息?
答案1
默认情况下,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
:)包含可用选项的概述。
答案2
该消息表示cp
尚未复制列出的目录。这是的默认行为cp
- 仅文件被正常复制,无论您是明确指定它们还是使用*
。如果您想要目录复制,请使用-r
表示“递归”的开关。
答案3
这里有几件事需要检查:
不要使用
sudo
。你不需要它,你已经拥有在自己的主目录中写入内容的权限。您可以通过从菜单中选择查看/显示隐藏文件,轻松地在图形文件管理器中查看隐藏文件和目录。或者按Ctrl- H。
您需要使用命令
-R
中的选项cp
来复制目录及其内容。/home 不是您的主目录。/home/username 才是。因此,您可能尝试从错误的位置进行复制。
shell 区分大小写,因此 ~/downloads 和 ~/Downloads 是两个不同的东西。
答案4
之所以这么说,omitting directory
是因为cp
据我所知,所有复制实用程序在开始复制文件之前都会创建一个要复制的文件和子目录列表。当--recursive
缺少选项时,子目录将从此列表中删除。因此,省略是指从复制列表中删除,而不是从源媒体中删除。我相信这解决了该消息的含义。