cp 的 Linux 问题:-r 未指定;省略目录

Jam*_*lis 3 linux cp

有人可以帮我理解这意味着什么吗?

cp: -r not specified; omitting directory
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用此命令

sudo cp /home/$USER/Documents/myfile.10 /home
Run Code Online (Sandbox Code Playgroud)

错误:

cp: -r not specified; omitting directory '/home/administrator/Documents/myfile.10'
Run Code Online (Sandbox Code Playgroud)

这是什么意思?为什么会这样?我该怎么办?

Kam*_*ski 5

cp: -r not specified; omitting directory '/home/administrator/Documents/myfile.10'
Run Code Online (Sandbox Code Playgroud)

这意味着myfile.10是一个目录。cp不会复制它,除非您明确使用-r(或等效的)标志。

因为cp在我的 Debian 中,它们是等价的:-r, -R, --recursive. 然而,POSIX-R仅定义(-r被提及为过时)。它说

如果source_file是directory 类型,则执行以下步骤:

  • 如果-R未指定该选项,cp则应将诊断消息写入标准错误,不对source_file执行任何操作,然后继续处理任何剩余文件。

[...]

结论是你cp做的正是它应该做的。如果要复制整个目录,请使用-R. 如果您希望myfile.10成为非目录,那么您需要调查差异的原因。