Linux圣经第十版:为什么-exec cp即使有超级用户权限也无法复制文件?

Linux圣经第十版:为什么-exec cp即使有超级用户权限也无法复制文件?

我读《Linux圣经第10版》第 130 页。练习#7:

创建一个/tmp/文件目录。查找该目录下的所有文件/usr/共享 将大于5MB小于10MB的目录复制到/tmp/文件目录。

我的命令看起来像find /usr/share -type f -size +5M -size -10M -exec cp {} /tmp/FILES \;.我像普通用户一样运行它并得到

cp: error copying '/bla/bla' to '/lol/kek': Input/output error find: '/usr/share/bla-bla': Permission denied

之后我尝试以超级用户身份运行它并收到错误(没有Permission denied):

cp: error copying '/bla/bla' to '/lol/kek': Input/output error

请解释一下,即使我以超级用户身份运行它,错误的原因是什么。谢谢。

PS 请解释为什么带有 of 的命令-exec应该为空{}

答案1

EIO“输入/输出错误”表示读取源文件或写入目标文件时发生低级 I/O 错误 ( )。这意味着您的存储有问题;dmesg将为您提供更多信息。

此类错误与特权或权限无关,这就是为什么cp以 root 身份运行不会使它们消失(与“权限被拒绝”错误不同)。

了解“find”的 -exec 选项{}解释了with的用法-exec

相关内容