Mac で複数のファイルのファイル拡張子を表示または非表示にするにはどうすればよいですか?

Mac で複数のファイルのファイル拡張子を表示または非表示にするにはどうすればよいですか?

この質問のバリエーションでは、ほとんどの場合、面倒な「情報を見る」プロセスを 1 つずつ実行して「拡張子を非表示」のチェックをオンまたはオフにするか、Finder -> 環境設定 -> 詳細 -> すべてのファイル拡張子を表示を使用してハンマー アプローチを使用する方法が説明されています。私は、Terminal.app と 1 つのコマンド ラインを使用して、一度に多数のファイルを処理する方法を見つけました。

「SetFile」という Developer ユーティリティが必要です。/Developer/Tools にそのユーティリティがある場合は、$PATH にその別名 (ln -s) を作成するか、$PATH にそのパスを追加します。これで、すべてのファイルに「属性」があり、付属のユーティリティ「GetFileInfo」で確認できます。属性は大文字または小文字の文字です。「E」と「e」は、拡張子を「非表示」または「表示」することを示します。SetFile を使用すると、これらを簡単に切り替えることができます。また、ファイル名のセットを SetFile に入力して、1 つのコマンド ラインですべて実行することもできます。簡単な例を次に示します。

.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」を使用します。

関連情報