我在第 130 页阅读了“Linux Bible 第 10 版”。练习 7:
创建一个/tmp/FILES目录。找到/usr/share 目录下所有大于5MB小于10MB的文件,复制到/tmp/FILES目录下。
我的命令看起来像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
应该为空{}
?
EIO
“输入/输出错误”表示读取源文件或写入目标文件时的低级 I/O 错误 ( )。这意味着您的存储有问题;dmesg
会给你更多的信息。此类错误与特权或权限无关,这就是为什么
cp
以 root 身份运行不会使它们消失(与“权限被拒绝”错误不同)。了解 `find` 的 -exec 选项解释了
{}
with的使用-exec
。