私の使命は、特定のディレクトリからファイルを見つけ、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
ことです。find
ls -S
find /home/it21366 -type f -size +10M -exec ls -lS {} + 2>/dev/null
「見つかった」ファイルをできるだけ多くの一致項目の呼び出しに置き換えるように-exec ... {} +
指示します。ファイルが多すぎると、複数回呼び出され、結果がソートされていない状態になります(グループ別にソートされます)。また、一致を一般ファイルに制限する機能も追加されました。find
ls
ls
-type f