2011-01-24 66 views

回答

1

據我所知,MV採用rename() POSIX系統調用,爲此,規範說:

重命名()函數將失敗,如果:

(...)

[EINVAL] [CX]新目錄 路徑名包含路徑前綴 命名舊目錄。

...以及無數其他詳細的故障模式。

操作系統可能通過比較沿層次結構的中間目錄的索引節點編號,在通用VFS層實現檢測。

1

外殼是負責在命令行中傳遞給mv之前擴大像*通配符和它這樣做直接,完全基於什麼樣的文件/目錄存在,沒有它可能想做什麼節目或者是什麼的知識與這些名字。因此,在這種情況下,../*將擴展到父目錄中的每個文件/目錄名稱,包括當前目錄<目錄名稱>。然後mv檢查它收到的參數列表,試圖將除了最後一個以外的每一個移動到最後一個,這會導致您看到的錯誤。

+0

那麼,它會如何知道_last_條目本身? _mv_檢查它是否試圖移動自己?` – 2011-01-26 16:52:17

相關問題