shopt -s globstar
Дуже приємно швидке інтерактивне використання дерев каталогів, які не надто величезні . Глобус не може фільтрувати каталоги на основі типу, але якщо ви користуєтесь ним, ls -d
тоді ls
буде просто надрукувати ім'я каталогу, а не вміст.
Якщо ваш ll
псевдонім передбачає -lh
:
# with shopt -s globstar in your .bashrc
ll -rSd **/*
дасть такий вихід (з мого каталогу коду-гольфу), але з кольоровим виділенням (тому простіше бачити каталоги). Зауважте, що сортування за розміром файлів відбулося в підкаталогах.
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~
...
Ви можете відфільтрувати каталоги, провівши їх grep -v '^d'
Іноді ви можете використовувати глобус, який відповідає лише файлам, а не каталогам, якщо ваші імена файлів мають шаблон. наприклад ll -rSd **/*.jpg
, або навіть **/*.*
працює , якщо жоден з ваших імен каталогів не мають .
в них, і всі файли , які ви хочете зробити .
(Для людей з фоном DOS: *.*
у Unix немає нічого магічного . Він просто відповідає будь-якій записи в каталозі, яка містить буквальну крапку. Але крім виконуваних файлів та іноді текстових файлів, звичайно давати розширення для імен файлів.)
@dessert вказує, що вам потрібно, shopt -s dotglob
щоб він відповідав усім файлам.
З ГНУ find
Якщо в одному ls
командному рядку не надто багато файлів , find -exec ls {} +
розмістіть їх у командному рядку, де їх ls
можна буде сортувати.
find -not -type d -exec ls --color -lrSh {} +
Використання -not -type d
замість цього не -type f
дозволяє ігнорувати символьні посилання, названі труби, розетки, файли пристроїв та все інше, про що ви клацаєте у своїх каталогах.
З 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
Тепер імена каталогів сортуються за списком із загальною сумою всього їх вмісту, але окремі файли все ще включаються.
sort -h
він також --human-numeric-sort
сортує номери з суфіксами розміру, як du -h
відбитки. Він ідеально підходить для використання з du
.
Я часто використовую du -sch * | sort -h
або */
отримую лише каталоги.
du -sch **/* | sort -h
Ви дасте вищенаведений результат, якщо ви забудете, що du
є -a
варіант.
(Я лише зайняв час, щоб роздивитись її, тому що я публікую відповідь. Для інтерактивного використання я, мабуть, тільки що використовував du -sch **/*
.