web-dev-qa-db-ja.com

OSX端末で人間が読めるファイルサイズを表示

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

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

24
hoosierEE

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

後のOSXエディションで理解するには、brewを使用してcoreutilsをインストールする必要はありません。 (私が間違っている場合、誰かが私を修正します。)

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

ls -l

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

ls -hl

または

ls -lh

この例では、「-」の後の文字は任意の順序にできます。

質問の詳細にあるように、ファイルリストをファイルサイズ、最大ファイルサイズの順に並べる場合、大文字の「S」を追加します。

ls -lhS

非表示のファイルもリストする場合は、「a」を追加します。

ls -alhS

繰り返しますが、「-」の後の文字は任意の順序にすることができます。


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

ls -hltur

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

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

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

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

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

したがって、現在のディレクトリ内のリストが長く、リストの先頭がスクロールアップせずに読み取れない場合でも、操作したファイルは、次のコマンドラインのすぐ上に表示されたままになる可能性があります。

これらのオプションなどは、lsコマンドのman(手動)ページにあります。

man ls

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

たとえば、質問の元のポスターが望むことを実現するには、ファイルを開き、新しい行に以下を追加します。

alias lss='ls -hlS'

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

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

man nano

Manページでnanoの使用方法を説明します。

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

31
Cam_Aust

あなたはしません。 GNU Coreutilsをインストールしない限り。

たとえば醸造

brew install coreutils

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

19

以下のコマンドラインは、サイズ(最大から最小)に基づいてソートされた現在のディレクトリ内のすべてのファイルとディレクトリをリストします。出力は次のようにフォーマットされます

ls -S -lh | awk '{print $5, $9}'
3
Seema Kadavan