Filesystems

為什麼隱藏以點開頭的文件名?我可以在不使用點作為第一個字元的情況下隱藏文件嗎?

  • November 24, 2017

最初我認為這是一個巧合,但現在我發現它甚至還有一個標籤:所有隱藏的文件名都以點開頭。這是一個約定嗎?為什麼選擇它?可以改變嗎?或者換句話說(作為一個相關問題@evilsoup 建議暗示對一堆其他人的回答):我可以隱藏文件而不重命名它們(使用.作為他們名字的第一個字元)?

根據維基百科

文件名以 . 應該隱藏是 Unix 早期軟體錯誤的結果。當特殊條目...目錄條目被添加到文件系統時,決定 ls 命令不應該顯示它們。但是,該程序被錯誤地編寫為排除任何名稱以.字元開頭的文件,而不是確切的名稱....

…所以它從一個錯誤開始,然後作為一個特性被接受(為了記錄,.是一個指向目前目錄..的連結,是一個指向它上面的目錄的連結,但我相信你已經知道了)。由於這種隱藏文件的方法在大多數情況下實際上已經足夠好了,我想沒有人會費心去實現 Windows 風格的文件隱藏。

還有一個事實是,實施不同的行為會對 *nix 世界產生更多的碎片,這是任何人最不想要的。

還有另一種隱藏文件的方法涉及重命名它們,但它僅適用於 GUI 文件管理器(並且在這些管理器中並不通用——主要的 Linux 使用它,但我不認為 OSX 的 Finder 會這樣做,並且更小眾的 Linux 文件管理器不太可能支持這種行為):您可以創建一個名為 的文件.hidden,然後將要隱藏的文件名放入其中,每行一個。ls並且 shell glob 不會尊重這一點,但它仍然可能對你有用。

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