
這個問題的變體幾乎總是描述一個繁瑣的一次“獲取資訊”過程來檢查或取消選中“隱藏擴展名”,或者通過使用 Finder -> 首選項 -> 高級 -> 顯示所有文件來使用錘子方法擴展。我找到了一種透過單一命令列使用 Terminal.app 一次處理批次檔的方法。
您需要名為“SetFile”的開發實用程式。如果 /Developer/Tools 中有該文件,請在 $PATH 上為其建立別名 (ln -s),或將其路徑新增至 $PATH 中。現在,每個檔案都有“屬性”,您可以使用配套實用程式“GetFileInfo”來檢視這些屬性。這些是字母,可以是大寫或小寫。 “E”和“e”表示“隱藏”或“顯示”副檔名。您可以使用 SetFile 在它們之間輕鬆切換。但您也可以將一組檔案名稱輸入 SetFile,並使用一個命令列完成所有這些操作。這是一個簡單的例子:
我有一堆 .doc (MS Word) 文檔,有些顯示擴展名,有些隱藏擴展名。我什麼都顯示擴展名。假設它們位於某個資料夾中。導航到該資料夾,然後執行以下操作:
ls -1 *.doc | tr " " "?" | xargs -L1 SetFile -a
-1 為資料夾中的每個檔案名稱提供所需的副檔名。 “tr”指令將檔案名稱中的空格轉換為“?”,表示單一符合字符,因此名稱中沒有空格。然後“xargs -L1”將每個名稱提供給“SetFile -a e”,表示“顯示”該檔案的副檔名。如果它已經被顯示,它就會保持這種狀態。
SetFile 可能不喜歡有「?」的名稱在其中,但它肯定不喜歡帶有空格的名稱,除非 SetFile 的檔案參數用引號引起來。不幸的是,「xargs」會將帶有空格的名稱分解為 SetFile 的單獨執行,這更糟。
最後,如果您想「隱藏」所有副檔名,請使用「SetFile -a E」。