สำหรับการใช้งานแบบอินเทอร์แอคทีฟอย่างรวดเร็วบนแผนผังไดเร็กทอรีที่ไม่ใหญ่เกินไปshopt -s globstar
ถือว่าดีมาก glob ไม่สามารถกรองไดเรกทอรีตามชนิด แต่ถ้าคุณใช้ด้วยls -d
แล้วls
จะพิมพ์ชื่อไดเรกทอรีแทนเนื้อหา
สมมติว่าll
ชื่อแทนของคุณรวมถึง-lh
:
# with shopt -s globstar in your .bashrc
ll -rSd **/*
จะให้ผลลัพธ์เช่นนี้ (จากไดเรกทอรี code-golf ของฉัน) แต่มีการเน้นสี (เพื่อให้ง่ายต่อการดูไดเรกทอรี) โปรดทราบว่าการเรียงลำดับตามขนาดไฟล์เกิดขึ้นในไดเรกทอรีย่อย
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'
บางครั้งคุณสามารถใช้ glob ที่ตรงกับไฟล์เท่านั้นและไม่ใช่ไดเรกทอรีหากชื่อไฟล์ของคุณมีรูปแบบ เช่นll -rSd **/*.jpg
หรือแม้กระทั่งการ**/*.*
ทำงานถ้าไม่มีชื่อไดเรกทอรีของคุณมี.
ในพวกเขาและไฟล์ทั้งหมดที่คุณต้องการจะทำ
(สำหรับผู้ที่มีพื้นหลัง DOS: ไม่มีอะไรมหัศจรรย์เกี่ยว*.*
กับ Unix มันแค่ตรงกับรายการไดเรกทอรีใด ๆ ที่มีจุดตัวอักษร แต่นอกเหนือจากไฟล์ที่ปฏิบัติการได้และบางครั้งไฟล์ข้อความ
@dessert ชี้ให้เห็นว่าคุณต้องการshopt -s dotglob
เพื่อให้ตรงกับไฟล์ทั้งหมด
ด้วย GNU 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
, aka --human-numeric-sort
, เรียงลำดับตัวเลขด้วยคำต่อท้ายขนาดเช่นdu -h
ภาพพิมพ์ du
มันเหมาะสำหรับการใช้งานกับ
ฉันมักจะใช้du -sch * | sort -h
หรือ*/
เพื่อรับไดเรกทอรีเท่านั้น
du -sch **/* | sort -h
จะให้ผลลัพธ์ข้างต้นถ้าคุณลืมว่าdu
มี-a
ตัวเลือก
(ผมเพียง แต่เอาเวลาที่จะมองมันได้เพราะผมโพสต์คำตอบ. du -sch **/*
สำหรับการใช้งานแบบโต้ตอบผมก็อาจจะมีการใช้เพียง