X 値より大きいファイルを検索、サイズで並べ替え、ls 形式で表示

X 値より大きいファイルを検索、サイズで並べ替え、ls 形式で表示

私の使命は、特定のディレクトリからファイルを見つけ、100 MBを超えるファイルのみを表示し、サイズでソートし、ls -lh形式で印刷することです。

これが私が実行したものです:

find /home/it21366 -size +10M | sort -h | ls -lh

これは私が得たものです。

-rwxr-xr-x+ 1 it21366 unixusers  12K Απρ  28  2014 a.out
-rwxr-xr-x+ 1 it21366 unixusers  471 Νοέ  29 10:51 askisi.sh
-rw-r--r--+ 1 it21366 unixusers 3,0K Απρ  28  2014 code.c
-rw-r--r--+ 1 it21366 unixusers 3,0K Απρ  28  2014 code.c~
-rw-r--r--+ 1 it21366 unixusers 6,2K Απρ  28  2014 CODE.txt
-rw-------+ 1 it21366 unixusers 2,0M Απρ  28  2014 core
-rwxr-xr-x+ 1 it21366 unixusers   66 Δεκ   6 14:39 it21366_ex_1_1
-rwxr-xr-x+ 1 it21366 unixusers  190 Δεκ   6 14:35 it21366_ex_1_4.sh
-rwxr-xr-x+ 1 it21366 unixusers  190 Δεκ   6 14:27 it21366_ex_1_4.sh~
-rwxr-xr-x+ 1 it21366 unixusers  546 Δεκ   5 17:46 it21366_ex_1_5
-rw-r--r--+ 1 it21366 unixusers 509K Οκτ  23  2014 java01.pdf
-rw-r--r--+ 1 it21366 unixusers 506K Οκτ  23  2014 java02.pdf
-rw-r--r--+ 1 it21366 unixusers 249K Οκτ  11 10:03 lab01_2018-19.pdf
-rw-r--r--+ 1 it21366 unixusers 1,2K Οκτ  24 16:27 MyClock.java
-rw-r--r--+ 1 it21366 unixusers 1,3K Οκτ  30  2013 starthere.desktop
-rw-r--r--+ 1 it21366 unixusers    3 Οκτ  24 12:45 test
-rw-r--r--+ 1 it21366 unixusers   12 Οκτ  24 12:45 TK.txt
-rw-r--r--+ 1 it21366 unixusers  14K Μάι  30  2018 Untitled 1.odt

LSがなぜ他の方法を無視し、ソートされていないかフィルタリングされていないファイルの内容のみを表示するのかは想像できません。

答え1

xargsを使用してください:

find /home/it21366 -size +10M | xargs ls -lhsSr 

答え2

別のオプションは、ファイルの数が1回の(長い)呼び出しに入るのに限られている場合は、大きなファイルを見つけて次のようにソートするlsことです。findls -S

find /home/it21366 -type f -size +10M -exec ls -lS {} + 2>/dev/null

「見つかった」ファイルをできるだけ多くの一致項目の呼び出しに置き換えるように-exec ... {} +指示します。ファイルが多すぎると、複数回呼び出され、結果がソートされていない状態になります(グループ別にソートされます)。また、一致を一般ファイルに制限する機能も追加されました。findlsls-type f

関連情報