Hard-Link

如何將硬連結轉換為普通文件?

  • September 27, 2016

我意識到每個文件都是一個硬連結。這正是我的意思:如果一個 inode 有多個文件指向它,我如何複製該 inode 以便每個文件都指向一個具有相同內容的單獨 inode?

例如:

echo "Example" > one
ln one two

如何在不共享 inode 的情況下使文件two具有與 相同的內容?one如果您願意,我想“複製”這些文件。

這可以通過命令來實現

find -samefile filename -exec sed -i ';;' {} \;

或者如果你現在是文件的 inode 號

find -inum inode -exec sed -i ';;' {} \;

請注意,這兩個命令僅在目前工作目錄的子目錄中查找具有匹配 inode 的文件。如果您需要搜尋文件系統上的所有文件,則需要從根目錄執行此命令。

第一部分find -samefile filename,查找所有共享相同 inode 的文件。然後它執行sed -i ';;'將文件複製到具有相同名稱的文件(注意我們使用 sed 腳本';;'而不是';',否則,find會將參數解釋;為命令的結尾-exec)。

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