Devices

沒有這樣的設備或地址

  • August 4, 2017

如果我在 期間收到此消息是什麼意思scp

scp: /dev/fd/3/fd/3/fd/3/fd/3/fd/3/fd/3/fd/3/fd/3/fd/3/fd/3/fd/3/fd/3/fd/5/31/rd/c6d16: No such device or address

我正在做的是

scp -r root@192.168.x.xx:/* .

在遠端執行遞歸的程序以超級使用者身份執行,並已遞歸到/dev/fd. 它的幾個打開文件描述符用於作為遞歸的一部分正在讀取的目錄。由於它們在遍歷時看起來像子目錄,因此/dev/fd再次遞歸它們。

甚至可以確定哪些打開的文件描述符對哪些目錄打開:

  • 文件描述符 #3 對/
  • 文件描述符 #5 對/dev/fd
  • 文件描述符 #31 對/dev

它通過漫長而迂迴的路線到達了它試圖打開和複製的點/dev/rd/c6d16,這與物理設備不對應。

始終小心命令,尤其是那些以超級使用者權限執行的命令,這些命令最終會嘗試天真地打開和複製/dev/device/proc/sys等中的所有文件。自從充滿磁帶設備(有時帶有自動倒帶/自動重放功能)和終端設備的日子以來,這一直是不明智的,這些/dev設備會阻止打開的呼叫,直到檢測到運營商。

確保如果你真的想複製/dev(很可能你不會考慮到在現代作業系統上它的內容是在執行時動態確定的),你使用一個命令來複製特殊的設備文件、FIFO、套接字和符號連結本身,而不是而不是天真地試圖打開和閱讀它們,就好像它們是普通文件一樣。(或者open()他們然後fstat()確定它們是否是特殊設備,這將在產生錯誤的設備文件上失敗open()。)

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