Untuk penggunaan interaktif cepat pada pohon direktori yang tidak terlalu besar, shopt -s globstar
sangat bagus. Sebuah gumpal tidak dapat menyaring direktori berdasarkan jenis, tetapi jika Anda menggunakannya dengan ls -d
kemudian ls
hanya akan mencetak nama direktori, bukan isi.
Dengan asumsi ll
alias Anda termasuk -lh
:
# with shopt -s globstar in your .bashrc
ll -rSd **/*
akan memberi Anda output seperti ini (dari direktori kode-golf saya), tetapi dengan penyorotan warna (sehingga lebih mudah untuk melihat direktori). Perhatikan bahwa penyortiran menurut ukuran file terjadi di seluruh subdirektori.
drwxr-xr-x 1 peter peter 70 Jun 8 07:56 casexchg
...
drwxr-xr-x 1 peter peter 342 Mar 13 18:47 parity-party
-rw-r--r-- 1 peter peter 387 Jul 29 2017 likely.cpp
-rw-r--r-- 1 peter peter 416 Aug 31 2017 true-binary.asm~
-rw-r--r-- 1 peter peter 447 Feb 23 20:14 weight-of-zero.asm
...
-rw-r--r-- 1 peter peter 6.4K Jun 1 2017 string-exponential.asm
-rwxr-xr-x 1 peter peter 6.7K Aug 31 2017 true-binary
-rwxr-xr-x 1 peter peter 6.8K Sep 17 2017 dizzy-integer
-rw-r--r-- 1 peter peter 7.5K Jul 24 2017 fibonacci/fibonacci-1G.v3-working-32b-stack-except-output.asm
-rw-r--r-- 1 peter peter 8.4K Jul 25 2017 fibonacci/perf.32bit-pop-114limb.sub-cmc.1G~
-rw-r--r-- 1 peter peter 8.4K Jul 25 2017 fibonacci/perf.32bit-pop-114limb.sub-cmc.1G
-rwxr-xr-x 1 peter peter 8.4K May 19 04:29 a.out
-rw-r--r-- 1 peter peter 8.9K Jul 25 2017 fibonacci/perf.python-xnor-2n
-rw-r--r-- 1 peter peter 9.5K Jul 26 2017 fibonacci/fibonacci-1G-performance.asm
-rwxr-xr-x 1 peter peter 9.6K Apr 12 23:25 empty-args
-rw-r--r-- 1 peter peter 9.7K Dec 18 17:00 bubblesort.asm
-rwxr-xr-x 1 peter peter 9.9K Feb 6 23:34 parity-party/a.out
-rw-r--r-- 1 peter peter 9.9K Jul 25 2017 fibonacci/fibonacci-1G-performance.asm~
...
Anda dapat memfilter direktori dengan menyalurkan melalui grep -v '^d'
Terkadang Anda dapat menggunakan gumpalan yang hanya cocok dengan file dan bukan direktori, jika nama file Anda memiliki pola. misalnya ll -rSd **/*.jpg
, atau bahkan **/*.*
berfungsi jika tidak ada nama direktori Anda .
di dalamnya, dan semua file yang ingin Anda lakukan .
(Untuk orang-orang dengan latar belakang DOS: tidak ada yang ajaib *.*
di Unix. Itu hanya cocok dengan entri direktori yang mengandung titik literal. Tetapi selain file executable dan terkadang file teks, adalah umum untuk memberikan ekstensi ke nama file.)
@dihkan menunjukkan Anda akan perlu shopt -s dotglob
untuk mencocokkan semua file.
Dengan GNU find
Jika tidak ada terlalu banyak file untuk dipasangkan pada satu ls
baris perintah, find -exec ls {} +
akan meletakkan semuanya pada baris perintah di mana ls
dapat mengurutkannya.
find -not -type d -exec ls --color -lrSh {} +
Menggunakan -not -type d
alih-alih -type f
menghindari mengabaikan symlink, bernama pipa, soket, file perangkat, dan apa pun yang Anda temukan di direktori Anda.
Dengan du
:
du -ach | sort -h
....
4.0K x86-modedetect-polyglot.o
8.0K ascii-compress-base.asm
8.0K dizzy-integer
8.0K stopwatch-rdtsc.asm
8.0K string-exponential.asm
8.0K true-binary
12K a.out
12K bubblesort.asm
12K casexchg
12K empty-args
100K parity-party
220K fibonacci
628K total
Sekarang nama direktori disortir ke dalam daftar dengan menjumlahkan semua kontennya, tetapi masing-masing file masih disertakan.
sort -h
, alias --human-numeric-sort
, mengurutkan angka dengan sufiks ukuran seperti du -h
cetakan. Ini sempurna untuk digunakan bersama du
.
Saya sering menggunakan du -sch * | sort -h
, atau */
hanya mendapatkan direktori.
du -sch **/* | sort -h
akan memberi Anda output di atas, jika Anda lupa bahwa du
memiliki -a
opsi.
(Saya hanya meluangkan waktu untuk mencarinya karena saya memposting jawaban. Untuk penggunaan interaktif, saya mungkin hanya akan menggunakan du -sch **/*
.