ls
ファイルタイプで並べ替えるには(たとえば、ディレクトリを最初に、次にファイル拡張子で)どうすればよいですか?(スーパーユーザー)で提案された回答は、ファイルタイプでlsをソートすると、からの不明なオプションエラーになりますls
。
ls
ファイルタイプで並べ替えるには(たとえば、ディレクトリを最初に、次にファイル拡張子で)どうすればよいですか?(スーパーユーザー)で提案された回答は、ファイルタイプでlsをソートすると、からの不明なオプションエラーになりますls
。
回答:
お気付きのとおり、Darwinバージョンのls
コマンドはこの-X | --sort=extension
オプションをサポートしていません。このオプションは、GNUバージョンのに固有ですls
。
ls
システムのGNUバージョンを入手できます。これを行う最も簡単な方法は、Homebrewパッケージマネージャーと移植システムを使用することです。Homebrewがインストールされている場合:
brew install coreutils
GNU Core Utilitiesパッケージをシステムに追加します。すべてのユーティリティには接頭辞が付けられるg
ため、OS Xに同梱されているデフォルトのDarwin ユーティリティと衝突しません。
GNU Core Utilitesをインストールすると、次のことができるようになります。
gls -X
そして、あなたはあなたが望むようにソートされた出力を見るでしょう。
OS Xに付属のユーティリティの代わりにGNU Core Utilsを使用する場合は、~/.bashrc
ファイルに次の行を追加できます。
source /usr/local/Cellar/coreutils/8.14/aliases
またg
、コマンドでプレフィックスを使用する必要がなくなります。GNU utilsの一部はbash組み込みツールやDarwinツールとは動作が異なるため、シェルセッションで他のことを台無しにする可能性があるため、これは完全に安全なことではありません。そのため、注意してください。
リンクされたスーパーユーザーの記事の回答に基づく:
ls -l |sort -d -k 1.1,1.1r -k 9 | cut -c 50-
の出力全体を表示する場合はls -l
、cut
一部を省略します。
/bin/ls
。