59

Linux では、入力du -sh * | sort -rhして、現在のディレクトリ内のファイルとディレクトリを最大のものから最小のものへと並べ替えて表示します。

できれば余分なものをインストールせずに、OSXターミナルでこれを行うにはどうすればよいですか?

4

3 に答える 3

85

2 年後のこの質問に対するより良い答え (OSX 10.11 でターミナルを使用) は、単純に ls コマンドに -h を追加して、人間が判読できるファイル サイズを取得することです。

それ以降の OSX エディションでの私の理解では、brew を使用して coreutils をインストールする必要はありません。(私が間違っていたら、誰かが私を訂正してください。)

たとえば、現在のディレクトリ内のファイルのリストを 1 列のリストとして取得し、ファイルの詳細を表示するには、次のように入力します。

ls -l

人間が読めるサイズのファイルが必要な場合は、単純に「h」を追加します。

ls -hl

また

ls -lh

この場合、「-」の後の文字は任意の順序で指定できます。

質問の詳細に記載されているように、ファイル リストをファイル サイズ順に並べ、最大ファイル サイズを先頭に並べたい場合は、大文字の「S」を追加します。

ls -lhS

目に見えないファイルもリストしたい場合は、「a」を追加します。

ls -alhS

ここでも、「-」の後の文字は任意の順序で指定できます。


現在のディレクトリでファイルを頻繁に作成および編集している場合、おそらくタスクまたはプロジェクトの作業中であるため、代替の組み合わせは次のとおりです。

ls -hltur

これは、人間が読めるファイル サイズ形式でファイルを一覧表示し、ターミナル ウィンドウの下に長いリストを表示します。

「t」は、最終変更日時によるファイルのソート順を示します。

次に、「u」はこれをわずかに変更して、ファイルが最後に変更された時間ではなく、最後にアクセスされた時間を使用します。

「r」はリストの順序を逆にして、最近アクセスされたファイルまたは「タッチされた」ファイルがリストの最後にリストされるようにします。

完全な組み合わせは、詳細なリストを持っていることを意味し、最近読んだ、開いた、または変更したファイル、または実行したプロセスまたは別のプロセスによって同様に「触れられた」ファイルがすべてリストの一番下にあります。

したがって、現在のディレクトリ内のリストが長すぎて、上にスクロールしないとリストの先頭を読むことができない場合でも、操作したファイルは、次の入力準備が整った次のコマンド ラインのすぐ上に表示されたままになる可能性があります。

これらのオプションやその他のオプションは、ls コマンドの man (マニュアル) ページにあります。

man ls

上記の形式のいずれか、または man ページを読んで選択した別の形式でファイルを定期的に一覧表示する場合は、.bash_profileファイルにエイリアスを追加できます (たとえば、nano を使用しこのファイルを開き、ホームディレクトリにあります)。

たとえば、質問の元の投稿者が望んでいたことを実現するには、ファイルを開き、新しい行に次を追加します。

alias lss='ls -hlS'

次に、ファイルを保存してそのターミナル ウィンドウを終了し、新しいターミナル ウィンドウを開くと、コマンド ラインで「lss」と入力すると、ファイルを一覧表示するときに日常的に検索するものが提供されます。

nano の使い方がわからない場合は、最初に次のように入力して man(ual) ページを表示します。

man nano

man ページには、nano の使用方法が説明されています。

man ページを終了して、コマンドを入力できる場所に戻るには、キー「q」を押します。

于 2017-01-22T17:40:49.513 に答える
26

あなたはそうしない。GNU Coreutils をインストールしない限り。

たとえば醸造で

brew install coreutils

-h オプションをサポートする gsort コマンドを取得します。

于 2014-08-22T20:25:12.427 に答える