在 Linux 中隱藏文件和文件夾的那些事

有時你需要在 Linux 中隱藏文件。
不要誤會,我不是指那些你不想讓你的家人看到的“特殊文件”。盡管你可以隱藏這些特殊文件,但更好的辦法還是用密碼鎖定它們以提供額外的保護。
回到隱藏文件的話題。名稱以 ??.?? 開頭的任何文件或文件夾在 Linux 中是“隱藏的”。
Linux 有很多這樣的文件和文件夾,在普通視圖中它們是隱藏的。這些主要是系統(tǒng)和程序所需的配置文件。
用戶通常不需要理會它們,因此它們在普通視圖中是隱藏的,這樣一來你就不會被許多看起來很奇怪的而不是你所創(chuàng)建的文件所淹沒。
下圖展示了我的主目錄中隱藏的文件和文件夾。

linux 普通視圖

linux 顯示隱藏文件
如果你使用的是桌面版 Linux,你可以通過在文件管理器中按 ??Ctrl+H??? 快捷鍵來輕松 ??查看隱藏文件???。在終端中,你可以使用 ??ls -a?? 命令顯示隱藏文件和普通文件。
那么,如何在 Linux 中創(chuàng)建隱藏文件呢?你只需用一個在命名的時候加一個 ??.?? 前綴。就是這樣。
在桌面版 Linux 里創(chuàng)建隱藏文件和文件夾(GUI 方法)
如果你使用的是文件管理器,在文件或文件夾上右鍵并選擇重命名選項。現(xiàn)在你所要做的就是在文件名的開頭添加一個 ??.??。
當你以這種方式創(chuàng)建隱藏文件時,GNOME 的 Nautilus 文件管理器也會顯示一個警告。

ubuntu linux 隱藏文件
你可以以相同的方式隱藏文件夾及其所有內容。
你可以按 ??Ctrl+H??? 鍵來顯示隱藏文件。哦!我是多么的喜歡 ??Ubuntu 中的鍵盤快捷鍵?? 和我使用的任何其他程序或操作系統(tǒng)!
要使隱藏文件變回普通文件,只需再次重命名這些文件刪掉文件名前綴的 ??.?? 即可。
在 Linux 終端創(chuàng)建隱藏文件和文件夾(CLI 方法)
如果你熱衷于終端,你可以 ??使用 mv 命令??? 重命名文件。你只需在原始文件名的開頭添加一個 ??.??。
mv filename .filename你可以使用以下命令顯示隱藏文件:
ls -la
你也可以使用 ??ls -lA???。這條命令不會顯示點文件(??.??? 和 ??..??)。
額外提示:用非重命名的方法隱藏文件和文件夾(僅適用于 GUI)
你剛剛學了在 Linux 中隱藏文件。問題是你必須重命名文件,而這種操作不適用于所有的場合。
例如,在 Ubuntu 中,你會在目錄中看到一個名為 ??snap??? 的文件夾。你不會使用它,但如果重命名它,你的 Snap 應用程序將無法按預期工作。類似的情況是,在 Ubuntu 22.04(安裝有 Snap 版本的 Firefox)的 ??Downloads??? 目錄下有一個 ??firefox.tmp?? 文件夾。
有一個巧妙的技巧可以在 Linux 桌面中使用。它應該可以在 Nemo、Thunar、Dolphin 等各種文件管理器下工作,但我不能保證。它確實適用于 GNOME 的 Nautilus 文件管理器。
因此,你在這里所做的是在你想要隱藏的文件或文件所在的目錄中創(chuàng)建一個名為 ??.hidden?? 的新文件。

在 Linux 中隱藏文件的另一種方法
按 ??Ctrl+H?? 顯示隱藏文件并 打開 ??.hidden?? 文件 進行編輯。在單獨的行中添加文件或文件夾的名稱。注意不能使用絕對或相對路徑。你想要隱藏的 文件和文件夾應與此特殊 ??.hidden?? 文件 位于同一路徑下。
這是我以不重命名的方式隱藏 ??cpufetch??? 目錄和 ??pcloud?? 文件的示例:
pcloud
cpufetch
按 ??Ctrl+H??? 以再次隱藏 ??.hidden?? 文件。
現(xiàn)在,關閉你的文件資源管理器并重新啟動它。你將不會再看到 ??.hidden?? 文件中提到的文件和目錄。
如果你想再次查看它們,請按 ??Ctrl+H?? 鍵。
如果你不想再隱藏文件,請從 ??.hidden??? 文件中刪除其名稱或完全刪除 ??.hidden?? 文件。
額外瑣事:隱藏文件“功能”實際上是一個 bug
你知道嗎?在文件名的開頭添加一個 ??.??? 來隱藏文件的“功能” ??實際上是一個 bug???
在早期的 UNIX 時代,當創(chuàng)建文件系統(tǒng)時,添加了 ??.???(當前目錄)和 ??..??(父目錄)文件以方便導航。
由于這些特殊的 ??.??? 和 ??..??? 文件中沒有實際數據,因此給 ??ls??? 命令添加了一個新的“功能”:該功能是檢查文件名的第一個字符,如果它是一個點(??.???),則不再使用 ??ls?? 命令顯示它。
這對隱藏 ??.??? 和 ??..??? 文件有效,但它引入了一個 “bug”:??ls??? 命令的輸出會隱藏任何文件名以 ??.?? 開頭的文件。
這個 bug 變成了一個功能,因為程序員喜歡它來“隱藏”他們的配置文件。??ls?? 命令可能是后來修改添加了一個顯示隱藏點文件的選項。
Linux 遵循相同的約定,因為 Linux 是以 UNIX 為原型開發(fā)的。
結論
我討論了如何從普通視圖中創(chuàng)建隱藏文件。如果要創(chuàng)建讓其他人無法訪問的機密文件或文件夾,則應對其進行加密。我曾經寫過 ??在 Linux 中使用密碼鎖定文件夾??。這是一篇有點兒舊的文章,但它可能仍然有效。



























