現在のディレクトリと後続のディレクトリで最大のファイルを見つける必要があります。私は試した
ls -Rlh | awk '{print $3 " " $5 " " $9}'
しかし、それが大丈夫かどうか、最大のファイルを並べ替えて選択する方法がわかりません。
GNU find
+ sort
+ head
ソリューション(任意のディレクトリ深度レベル用) 、ファイルパスに改行文字が含まれていないと仮定します。
find . -type f -printf "%s %p\n" | sort -nr | head -1
%s
-ファイルサイズ(バイト単位)を指すフォーマット指定子%p
-ファイル名を指すフォーマット指定子sort -nr
-レコードを逆の順序で数値的に並べ替えますhead -1
- TOPの最初の行/レコードを印刷します人間が読める形式のファイルサイズ値を取得するには-GNU numfmt
コマンド(サポートされている場合):
find . -type f -printf "%s %p\n" | sort -nr | head -1 | numfmt --to=si
zsh
を使用すると、最大の通常ファイルの場合:
ls -ld -- **/*(.DOL[1])
(もちろん、ls -ld --
を任意のコマンドに置き換えることができます。GNU ls
または互換性のあるものを使用する場合は、human)の-h
オプションも参照してください。読み取り可能なサイズ)
.
:のみ通常ファイル(ディレクトリ、シンボリックリンク、デバイス、FIFOなどではありません)D
:隠されたものを含め、隠されたdirに降りるOL
:サイズの逆順(L
ength)。[1]
:最初の一致のみ。同点がある場合は、ランダムにいずれかを取得します。最初のアルファベット順が必要な場合は、余分なon
(o
rder by n
ame)を追加して、タイをアルファベット順に並べ替えます。