Rename

是否可以使用 inode 重命名文件或目錄?

  • November 30, 2019

我將 /home 目錄更改為不同的分區並且無法從中訪問文件,我已經能夠從這個問題中解決這個問題 -如何在切換到不同的分區後訪問先前安裝的內容?.

如果我之前已經註意到目錄的 inode,我可以單獨使用它來重命名目錄嗎?

您可以僅使用 inode 的知識重命名文件(目錄或其他)find,但如果 (a) 包含它的文件系統未安裝,或者 (b) 有另一個文件系統安裝在包含您感興趣的文件,您的系統根本無法訪問該文件。在情況 (a) 中,您需要先掛載文件系統,然後才能對內容執行任何操作,包括重命名;在情況 (b) 中,您需要解除安裝掛載在包含目錄“頂部”的文件系統要重命名的文件。看起來你在問案例(b)。

如果我理解正確,您正在嘗試使舊/home目錄(位於根分區上)可訪問,同時仍使用安裝在/home. 如果這是您想要的,請執行以下操作:

關閉所有文件並註銷。然後以身份登錄root(為此使用虛擬終端 - 按 Ctrl-Alt-F2)執行以下命令:

umount /home
mv /home /home-old
mkdir /home
mount -a
ls /home
ls /home-old

如果一切正常,請註銷並以您自己的身份重新登錄,一切都應該沒問題。

順便說一句,僅使用其 inode 的知識重命名文件的命令(假設文件在目前目錄中)是:

find . -maxdepth 1 -inum 123456789 -exec mv {} mynewname \;

123456789當然,inode 號在哪裡。(請注意,確定文件及其find路徑並將此資訊傳遞mv給簡單的。)

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