我意識到每個文件都是一個硬連結。這就是我的意思:如果索引節點有多個檔案指向它,我該如何複製該索引節點,以便每個檔案都指向具有相同內容的單獨索引節點?
例如:
echo "Example" > one
ln one two
如何使文件two
具有與 相同的內容one
,而不共享 inode?如果您願意,我想「重複」這些文件。
答案1
這可以透過命令來實現
find -samefile filename -exec sed -i ';;' {} \;
或者如果您現在知道檔案的索引節點號
find -inum inode -exec sed -i ';;' {} \;
請注意,這兩個指令僅在目前工作目錄的子目錄中尋找具有符合 inode 的檔案。如果需要搜尋檔案系統上的所有文件,則需要從根目錄執行此命令。
第一部分find -samefile filename
,尋找共享相同索引節點的所有檔案。然後它執行sed -i ';;'
將檔案複製到具有相同名稱的檔案(注意我們使用 sed 腳本';;'
而不是';'
,否則,find
會將參數解釋;
為命令的結尾-exec
)。