Permissions

Linux 聖經第 10 版:為什麼 -exec cp 即使擁有超級使用者權限也無法複製文件?

  • April 1, 2022

我在第 130 頁閱讀了*“Linux 聖經第 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

引用自:https://unix.stackexchange.com/questions/697623