ใช้ ls เพื่อแสดงรายการไดเร็กทอรีและขนาดทั้งหมด


827

เป็นไปได้หรือไม่ที่จะใช้lsใน Unix เพื่อแสดงขนาดโดยรวมของไดเร็กตอรี่ย่อยและเนื้อหาทั้งหมดตรงข้ามกับปกติ4Kที่ (ฉันถือว่า) เป็นเพียงไฟล์ไดเร็กตอรี่เอง?

total 12K
drwxrwxr-x  6 *** *** 4.0K 2009-06-19 10:10 branches
drwxrwxr-x 13 *** *** 4.0K 2009-06-19 10:52 tags
drwxrwxr-x 16 *** *** 4.0K 2009-06-19 10:02 trunk

หลังจากกำจัดสิ่งสกปรกบนหน้าคนฉันกำลังจะว่างเปล่า


4
คุณต้องการใช้ du -s แทน
gun

21
ในการค้นหาเป็ด:alias ducks='du -cksh * | sort -hr | head -n 15'
Sebi

คำตอบ:


1550

ลองสิ่งที่ชอบ:

du -sh *

เวอร์ชั่นย่อของ:

du --summarize --human-readable *

คำอธิบาย:

du: D isk U sage

-s: แสดงข้อมูลสรุปสำหรับแต่ละไฟล์ที่ระบุ (เทียบเท่ากับ-d 0)

-h: เอาต์พุต "มนุษย์อ่านได้" ใช้ส่วนต่อท้ายของหน่วย: B yte, K ibibyte (KiB), M ebibyte (MiB), G ibibyte (GiB), T ebibyte (TiB) และP ebibyte (PiB) (base2)


55
นอกจากนี้ -c (สร้างผลรวมทั้งหมด) เป็นสิ่งที่ดี
meridius

50
du - max-depth 1 แสดงเฉพาะไฟล์ / ขนาดโฟลเดอร์ 1 ลึกลงไปในแผนผังไม่เกะกะและง่ายต่อการค้นหาโฟลเดอร์ขนาดใหญ่ภายในโฟลเดอร์
CousinCocaine

12
วิธีรวมไฟล์ที่ซ่อนไว้ด้วย?
Zakaria Braksa

5
@Zak ใน zsh คุณสามารถใช้*(D)เพื่อจับคู่ไฟล์ที่ซ่อน ( d ot) ควบคู่กับไฟล์ปกติ เมื่อใช้ bash คุณสามารถใช้* .[!.]*เพื่อจับคู่ทั้งสอง
Sebi

22
เพื่อให้ได้ภาพที่ชัดเจนว่ามีที่ว่างว่างdu -sch * .[!.]* | sort -rhอยู่ที่ยอดเยี่ยม (แสดงผลลัพธ์ที่เรียงลำดับ) บน mac do: brew install coreutilsแล้วdu -sch * .[!.]* | gsort -rh
Guig

319

du -sk * | sort -nจะเรียงลำดับโฟลเดอร์ตามขนาด มีประโยชน์เมื่อต้องการล้างพื้นที่


11
ผนวก a | tail -rเพื่อจัดเรียงตามลำดับที่ใหญ่ที่สุดก่อน
Phrogz

68
sort -rnเรียงลำดับสิ่งต่าง ๆ ตามลำดับตัวเลขย้อนกลับ sort -rn | head -n 10จะแสดงเพียงไม่กี่อันดับแรกหากเป็นที่สนใจ
AgileTillIDie

14
sort -rhจะทำงานได้ดีกับdu -cksh *หน่วยเรียงที่มนุษย์อ่านได้
Sebi

@Sebi -h ไม่ใช่พารามิเตอร์ที่ถูกต้องสำหรับการจัดเรียงบน Mac น่าเสียดาย
anon58192932

@Sebi ยัง -c คือไม่จำเป็นต้องเป็นเช่นเดียวกับdu -ksh | sort -rn du -cksh | sort -rnเช่นเดียวกับที่เป็นเช่นเดียวกับdu -ksh du -cksh
hello_there_andy

108
du -sh * | sort -h

สิ่งนี้จะแสดงในรูปแบบที่มนุษย์อ่านได้


6
เพิ่มเติมเกี่ยวกับsort -hที่นี่: gnu.org/software/coreutils/manual/...มันโดยเฉพาะอย่างยิ่งมีการเรียงลำดับ103K, 102M, 1.1Gฯลฯ นี้ควรจะมีอยู่ในจำนวนมากของระบบในปัจจุบัน แต่ไม่ทั้งหมด
Evgeni Sergeev

duh -shm * | เรียงลำดับ -n?
std''OrgnlDave

10
ใช้งานได้ดีหนึ่งการเพิ่มเล็ก ๆdu -sh * | sort -rh(-r สำหรับการแสดงรายการโฟลเดอร์ที่ใหญ่กว่าก่อน)
artm

ในการรวมไฟล์ / ไดเรกทอรีที่ซ่อนอยู่ du -sh $(ls -A) | sort -h
jmd_dk

55

ในการแสดงรายการไดเรกทอรีที่ใหญ่ที่สุดจากไดเรกทอรีปัจจุบันในรูปแบบที่มนุษย์สามารถอ่านได้:

du -sh * | sort -hr

วิธีที่ดีกว่าในการ จำกัด จำนวนแถวสามารถทำได้

du -sh * | sort -hr | head -n10

โดยที่คุณสามารถเพิ่มส่วนต่อท้ายของการ-nตั้งค่าสถานะเพื่อ จำกัด จำนวนแถวที่แสดง

ตัวอย่าง:

[~]$ du -sh * | sort -hr
48M app
11M lib
6.7M    Vendor
1.1M    composer.phar
488K    phpcs.phar
488K    phpcbf.phar
72K doc
16K nbproject
8.0K    composer.lock
4.0K    README.md

ทำให้สะดวกในการอ่าน :)


27

ในการแสดงในls -lhรูปแบบให้ใช้:

(du -sh ./*; ls -lh --color=no) | awk '{ if($1 == "total") {X = 1} else if (!X) {SIZES[$2] = $1} else { sub($5 "[ ]*", sprintf("%-7s ", SIZES["./" $9]), $0); print $0} }'

รหัส Awk อธิบาย:

if($1 == "total") { // Set X when start of ls is detected
  X = 1 
} else if (!X) { // Until X is set, collect the sizes from `du`
  SIZES[$2] = $1
} else {
  // Replace the size on current current line (with alignment)
  sub($5 "[ ]*", sprintf("%-7s ", SIZES["./" $9]), $0); 
  print $0
}

ตัวอย่างผลลัพธ์:

drwxr-xr-x 2 root     root 4.0K    Feb 12 16:43 cgi-bin
drwxrws--- 6 root     www  20M     Feb 18 11:07 document_root
drwxr-xr-x 3 root     root 1.3M    Feb 18 00:18 icons
drwxrwsr-x 2 localusr www  8.0K    Dec 27 01:23 passwd

วิธีใดในการเรียงลำดับผลลัพธ์นี้ นอกจากนี้สำหรับทุกคนใน mac สิ่งนี้สามารถใช้งานได้ดีหากคุณลบออก--color=no
anon58192932

@ anon58192932 คุณสามารถไพพ์เอาท์พุทเพื่อsort --key=5,5hเรียงลำดับ 'หน่วยที่มนุษย์สามารถอ่านได้' จากคอลัมน์ที่ห้า
Sebi

ผลตอบแทนsort: stray character in field spec: invalid field specification 5,5h'` บางครั้งฉันเกลียดแม็คจริงๆ = \
anon58192932

@ anon58192932 คุณสามารถถามคำถามเกี่ยวกับ mac ฉันแน่ใจว่ามีคนที่สามารถช่วยได้ คำถามนี้ถูกแท็กเป็น GNU / linux
Sebi

2
มีวิธีการรักษาสีโดยใช้คำตอบนี้หรือไม่?
Pablo Canseco

20

คำสั่งที่คุณต้องการคือ 'du -sk' du = "การใช้ดิสก์"

แฟล็ก -k ให้เอาต์พุตในหน่วยกิโลไบต์แทนค่าดีฟอลต์ du ของเซ็กเตอร์ดิสก์ (บล็อก 512- ไบต์)

ธง -s จะแสดงรายการสิ่งต่าง ๆ ในไดเรกทอรีระดับบนสุดเท่านั้น (เช่นไดเรกทอรีปัจจุบันโดยค่าเริ่มต้นหรือไดเรกทอรีที่ระบุในบรรทัดคำสั่ง) มันแปลกที่ du มีพฤติกรรมตรงข้ามของ ls ในเรื่องนี้ โดยค่าเริ่มต้นคุณจะให้การใช้ดิสก์ของแต่ละไดเรกทอรีย่อยซ้ำ ในทางตรงกันข้าม ls จะให้ไฟล์รายการในไดเรกทอรีที่ระบุเท่านั้น (ls -R ช่วยให้คุณมีพฤติกรรมแบบวนซ้ำ)


ลองสิ่งนี้ในไดเรกทอรีรากมันยังคงพยายามที่จะแสดงรายการไดเรกทอรีย่อยทำให้เกิดข้อความจำนวนมาก
Nagev

14

ใส่การประกาศฟังก์ชันเชลล์นี้ในสคริปต์การเริ่มต้นเชลล์ของคุณ

function duls {
    paste <( du -hs -- "$@" | cut -f1 ) <( ls -ld -- "$@" )
}

ฉันเรียกมันdulsเพราะมันแสดงผลลัพธ์จากทั้งสองduและls(ตามลำดับ):

$ duls
210M    drwxr-xr-x  21 kk  staff  714 Jun 15 09:32 .

$ duls *
 36K    -rw-r--r--   1 kk  staff    35147 Jun  9 16:03 COPYING
8.0K    -rw-r--r--   1 kk  staff     6962 Jun  9 16:03 INSTALL
 28K    -rw-r--r--   1 kk  staff    24816 Jun 10 13:26 Makefile
4.0K    -rw-r--r--   1 kk  staff       75 Jun  9 16:03 Makefile.am
 24K    -rw-r--r--   1 kk  staff    24473 Jun 10 13:26 Makefile.in
4.0K    -rw-r--r--   1 kk  staff     1689 Jun  9 16:03 README
120K    -rw-r--r--   1 kk  staff   121585 Jun 10 13:26 aclocal.m4
684K    drwxr-xr-x   7 kk  staff      238 Jun 10 13:26 autom4te.cache
128K    drwxr-xr-x   8 kk  staff      272 Jun  9 16:03 build
 60K    -rw-r--r--   1 kk  staff    60083 Jun 10 13:26 config.log
 36K    -rwxr-xr-x   1 kk  staff    34716 Jun 10 13:26 config.status
264K    -rwxr-xr-x   1 kk  staff   266637 Jun 10 13:26 configure
8.0K    -rw-r--r--   1 kk  staff     4280 Jun 10 13:25 configure.ac
7.0M    drwxr-xr-x   8 kk  staff      272 Jun 10 13:26 doc
2.3M    drwxr-xr-x  28 kk  staff      952 Jun 10 13:26 examples
6.2M    -rw-r--r--   1 kk  staff  6505797 Jun 15 09:32 mrbayes-3.2.7-dev.tar.gz
 11M    drwxr-xr-x  42 kk  staff     1428 Jun 10 13:26 src

$ duls doc
7.0M    drwxr-xr-x  8 kk  staff  272 Jun 10 13:26 doc

$ duls [bM]*
 28K    -rw-r--r--  1 kk  staff  24816 Jun 10 13:26 Makefile
4.0K    -rw-r--r--  1 kk  staff     75 Jun  9 16:03 Makefile.am
 24K    -rw-r--r--  1 kk  staff  24473 Jun 10 13:26 Makefile.in
128K    drwxr-xr-x  8 kk  staff    272 Jun  9 16:03 build

คำอธิบาย:

pasteยูทิลิตี้สร้างคอลัมน์จากการป้อนข้อมูลตามสเปคที่คุณให้ เมื่อได้รับไฟล์อินพุตสองไฟล์มันทำให้พวกมันอยู่เคียงข้างกันพร้อมกับแท็บเป็นตัวคั่น

เราให้เอาต์พุตdu -hs -- "$@" | cut -f1เป็นไฟล์แรก (อินพุตสตรีมจริงๆ) และเอาต์พุตls -ld -- "$@"เป็นไฟล์ที่สอง

ในฟังก์ชั่น"$@"จะประเมินรายการของอาร์กิวเมนต์บรรทัดคำสั่งทั้งหมดโดยแต่ละรายการจะอยู่ในเครื่องหมายคำพูดคู่ มันจะเข้าใจตัวอักษรกลมและชื่อเส้นทางที่มีช่องว่าง ฯลฯ

minuses คู่ ( --) สัญญาณสิ้นสุดของตัวเลือกบรรทัดคำสั่งไปและdu lsหากไม่มีสิ่งเหล่านี้การพูดduls -lจะทำให้สับสนduและตัวเลือกใด ๆduที่lsไม่มีความสับสนls(และตัวเลือกที่มีอยู่ในอรรถประโยชน์ทั้งสองอาจไม่ได้หมายถึงสิ่งเดียวกัน

cutหลังจากduเพียงแค่ตัดออกคอลัมน์แรกของdu -hsการส่งออก (ขนาด)

ฉันตัดสินใจเอาduท์พุทด้านซ้ายมิฉะนั้นฉันจะต้องจัดการคอลัมน์ขวาสั่นคลอน (เนื่องจากความยาวของชื่อไฟล์ที่แตกต่างกัน)

คำสั่งจะไม่ยอมรับการตั้งค่าสถานะบรรทัดคำสั่ง

นี้ได้รับการทดสอบทั้งในและbash มันจะไม่ทำงานกับksh93/bin/sh


เยี่ยมมาก การอนุญาตและขนาดในหนึ่งบรรทัด
Ben

7

ฉันมักจะใช้du -sk( -kธงแสดงขนาดไฟล์เป็นกิโลไบต์) แทน


5
นี่ควรเป็นความคิดเห็นโดยให้ข้อมูลเพิ่มเติมกับคำตอบที่ได้รับการยอมรับและถูกต้องมากขึ้นโดย @molf ไม่ควรพิจารณาคำตอบด้วยตัวเอง
code_monk


7

ncdu ncurses du

ยูทิลิตี้ CLI ที่ยอดเยี่ยมนี้ช่วยให้คุณค้นหาไฟล์และไดเรกทอรีขนาดใหญ่แบบโต้ตอบได้อย่างง่ายดาย

ตัวอย่างเช่นจากภายในต้นไม้ของโครงการที่รู้จักกันดีเราทำ:

sudo apt-get install ncdu
ncdu

ผลของมัน:

ป้อนคำอธิบายรูปภาพที่นี่

จากนั้นฉันลงและขวาบนแป้นพิมพ์เพื่อเข้าไปใน/driversโฟลเดอร์และฉันเห็น:

ป้อนคำอธิบายรูปภาพที่นี่

ncdu คำนวณขนาดไฟล์ซ้ำครั้งเดียวเมื่อเริ่มต้นสำหรับต้นไม้ทั้งหมดดังนั้นจึงมีประสิทธิภาพ

"การใช้งานดิสก์ทั้งหมด" เทียบกับ "ขนาดที่ชัดเจน" นั้นคล้ายคลึงกับduและฉันได้อธิบายไว้ที่: ทำไมเอาต์พุตของ `du` มักจะแตกต่างจาก` du -b`

หน้าแรกของโครงการ: https://dev.yorhel.nl/ncdu

คำถามที่เกี่ยวข้อง:

ผ่านการทดสอบใน Ubuntu 16.04

ncdu การใช้งานที่ไม่โต้ตอบ

อีกคุณสมบัติที่ยอดเยี่ยมncduคือคุณสามารถถ่ายโอนข้อมูลขนาดในรูปแบบ JSON ก่อนและนำมาใช้ใหม่ในภายหลัง

ตัวอย่างเช่นในการสร้างไฟล์ที่รัน:

ncdu -o ncdu.json

จากนั้นตรวจสอบมันแบบโต้ตอบกับ:

ncdu -f ncdu.json

สิ่งนี้มีประโยชน์มากถ้าคุณจัดการกับระบบไฟล์ที่มีขนาดใหญ่และช้าเช่น NFS

ด้วยวิธีนี้คุณสามารถส่งออกครั้งแรกเพียงครั้งเดียวซึ่งอาจใช้เวลาหลายชั่วโมงจากนั้นสำรวจไฟล์ออกจากออกสำรวจอีกครั้ง ฯลฯ

รูปแบบผลลัพธ์เป็นเพียง JSON ดังนั้นจึงสามารถนำมาใช้ซ้ำกับโปรแกรมอื่นได้ง่ายเช่น:

ncdu -o -  | python -m json.tool | less

เผยให้เห็นโครงสร้างข้อมูลไดเรกทอรีต้นไม้อย่างง่าย:

[
    1,
    0,
    {
        "progname": "ncdu",
        "progver": "1.12",
        "timestamp": 1562151680
    },
    [
        {
            "asize": 4096,
            "dev": 2065,
            "dsize": 4096,
            "ino": 9838037,
            "name": "/work/linux-kernel-module-cheat/submodules/linux"
        },
        {
            "asize": 1513,
            "dsize": 4096,
            "ino": 9856660,
            "name": "Kbuild"
        },
        [
            {
                "asize": 4096,
                "dsize": 4096,
                "ino": 10101519,
                "name": "net"
            },
            [
                {
                    "asize": 4096,
                    "dsize": 4096,
                    "ino": 11417591,
                    "name": "l2tp"
                },
                {
                    "asize": 48173,
                    "dsize": 49152,
                    "ino": 11418744,
                    "name": "l2tp_core.c"
                },

ทดสอบใน Ubuntu 18.04


1
น่าอัศจรรย์ ขอบคุณสำหรับการแบ่งปัน!
Frank Fu

ฉันเห็นด้วย ncdu เป็นวิธีที่จะไป ... แต่คุณรู้หรือไม่ว่ามันเป็นไปได้ที่จะค้นหาไฟล์ JSON? นั่นคือรับเส้นทางแบบเต็มของไฟล์ / โฟลเดอร์เฉพาะ
FGV

1
@FGV ฉันไม่คิดว่า ncdu สามารถแสดงผลออกมาได้สิ่งหนึ่งที่เป็นไปได้คือการแฮกสคริปต์ python แบบง่าย ๆ ที่แยกวิเคราะห์ JSON
Ciro Santilli 冠状病毒审查六四事件法轮功


4

นี่คือสิ่งที่ฉันชอบ

อัปเดต : ฉันไม่ชอบไฟล์ก่อนหน้านี้เพราะไม่ได้แสดงไฟล์ในไดเรกทอรีปัจจุบันมันเป็นเพียงรายการไดเรกทอรี

ตัวอย่างเอาต์พุตสำหรับ/varบน Ubuntu:

sudo du -hDaxd1 /var | sort -h | tail -n10

4.0K    /var/lock
4.0K    /var/run
4.0K    /var/www
12K     /var/spool
3.7M    /var/backups
33M     /var/log
45M     /var/webmin
231M    /var/cache
1.4G    /var/lib
1.7G    /var

3

นี่เป็นคำแนะนำที่ดี แต่สิ่งที่ฉันใช้คือ:

du -ksh * | sort -n -r

-ksh ทำให้แน่ใจว่าไฟล์และโฟลเดอร์แสดงรายการในรูปแบบที่มนุษย์สามารถอ่านได้และในหน่วยเมกะไบต์กิโลไบต์ ฯลฯ จากนั้นคุณเรียงลำดับตัวเลขและเรียงลำดับย้อนกลับเพื่อให้ไฟล์มีขนาดใหญ่ขึ้นก่อน

ข้อเสียเพียงอย่างเดียวของคำสั่งนี้คือคอมพิวเตอร์ไม่ทราบว่า Gigabyte นั้นใหญ่กว่า Megabyte ดังนั้นมันจะเรียงลำดับตามตัวเลขเท่านั้นและคุณมักจะพบรายการเช่นนี้:

120K
12M
4G

เพียงแค่ระวังที่จะดูหน่วย

คำสั่งนี้ยังใช้งานได้บน Mac (ในขณะที่sort -hไม่มีตัวอย่าง)


หากคุณลบ-hธงออกจากduคำสั่งคุณตัดข้อเสียนั้น
Carlos Ricardo

หรือคุณสามารถใช้-hแทนการ-nเรียงลำดับเช่นกัน
Sebi

หรือแค่
รีด

3
du -S

duมีอีกตัวเลือกที่มีประโยชน์: -S, --separate-dirsบอกduไม่รวมขนาดของไดเรกทอรีย่อย - มีประโยชน์ในบางโอกาส

ตัวอย่างที่ 1 - แสดงเฉพาะขนาดไฟล์ในไดเรกทอรี:

du -Sh  * 
3,1G    10/CR2
280M    10

ตัวอย่างที่ 2 - แสดงขนาดไฟล์และไดเรกทอรีย่อยในไดเรกทอรี:

du -h  * 
3,1G    10/CR2 
3,4G    10



2

เป็นเพียงคำเตือนถ้าคุณต้องการเปรียบเทียบขนาดของไฟล์ du สร้างผลลัพธ์ที่แตกต่างกันขึ้นอยู่กับระบบไฟล์ขนาดบล็อก ...

อาจเกิดขึ้นได้ว่าขนาดของไฟล์นั้นแตกต่างกันเช่นการเปรียบเทียบไดเรคทอรี่เดียวกันในฮาร์ดดิสก์ของคุณและอุปกรณ์เก็บข้อมูล USB ขนาดใหญ่ ฉันใช้สคริปต์ต่อไปนี้รวมถึง ls เพื่อสรุปขนาดไดเรกทอรี ผลลัพธ์เป็นไบต์โดยพิจารณาไดเรกทอรีย่อยทั้งหมด

echo "[GetFileSize.sh] target directory: \"$1\""

iRetValue=0

uiLength=$(expr length "$1")
if [ $uiLength -lt 2 ]; then
  echo "[GetFileSize.sh] invalid target directory: \"$1\" - exiting!"
  iRetValue=-1
else
  echo "[GetFileSize.sh] computing size of files..."

  # use ls to compute total size of all files - skip directories as they may
  # show different sizes, depending on block size of target disk / file system
  uiTotalSize=$(ls -l -R $1 | grep -v ^d | awk '{total+=$5;} END {print total;}')
  uiLength=$(expr length "$uiTotalSize")
  if [ $uiLength -lt 1 ]; then
    uiTotalSize=0
  fi
  echo -e "[GetFileSize.sh] total target file size: \"$uiTotalSize\""

fi

exit "$iRetValue"

1

หากต้องการแสดงไฟล์และไดเรกทอรีย่อยปัจจุบันขนาดซ้ำ:

du -h .

เพื่อแสดงข้อมูลที่มีขนาดเท่ากันแต่โดยไม่ต้องพิมพ์ไดเรกทอรีย่อยของพวกเขาซ้ำ (ซึ่งอาจจะเป็นรายการใหญ่) เพียงใช้--max เชิงลึกตัวเลือก:

du -h --max-depth=1 .

1

ชั่วครู่หนึ่งฉันใช้ Nautilus (บนเดสก์ท็อป Gnome บน RHEL 6.0) เพื่อลบไฟล์ในโฟลเดอร์บ้านของฉันแทนที่จะใช้rmคำสั่งในการทุบตี เป็นผลให้ขนาดรวมแสดงโดย

du -sh

ไม่ตรงกับผลรวมของการใช้ดิสก์ของแต่ละไดเรกทอรีย่อยเมื่อฉันใช้

du -sh *

ฉันใช้เวลาพอdu -sh *สมควรที่จะรู้ว่า Nautilus ส่งไฟล์ที่ถูกลบไปยังโฟลเดอร์ถังขยะและโฟลเดอร์นั้นไม่ได้อยู่ในรายการคำสั่ง ดังนั้นอยากแบ่งปันสิ่งนี้ในกรณีที่ใครบางคนประสบปัญหาเดียวกัน


1

อืมวิธีที่ดีที่สุดคือใช้คำสั่งนี้:

du -h -x / | sort -hr >> /home/log_size.txt

จากนั้นคุณจะสามารถรับโฟลเดอร์ทุกขนาดได้จากเซิร์ฟเวอร์ทั้งหมดของคุณ ง่ายต่อการช่วยคุณค้นหาขนาดที่ใหญ่ที่สุด


1

ต่อไปนี้เป็นเรื่องง่ายที่จะจำ

ls -ltrapR

รายการเนื้อหาไดเรกทอรี

ใช้รูปแบบรายการยาว

เรียงลำดับตามเวลาการแก้ไขใหม่ล่าสุดก่อน

-r, - กลับคำสั่งย้อนกลับในขณะที่การเรียงลำดับ

-a, - อย่าเพิกเฉยต่อรายการที่ขึ้นต้นด้วย

-p, --indicator-style = slash ผนวก / ตัวบ่งชี้ไปยังไดเรกทอรี

-R, - ไดเรกทอรีย่อยรายการแบบเรียกซ้ำ

https://explainshell.com/explain?cmd=ls+-ltrapR


1

หากคุณต้องการควบคุมมากกว่าsizeที่คุณต้องการแสดงรายการไดเรกทอรีมากกว่าคุณสามารถใช้สวิตช์threshold( -t) เช่นเดียวกับใน:

$ du -ht 1000000000 | sort --reverse

du- disk usage
h - รูปแบบที่มนุษย์อ่านได้
t - ขนาดขีด จำกัด

ที่นี่เราต้องการแสดงรายการไดเรกทอรีทั้งหมดที่มีขนาดใหญ่กว่า 1GB

$ du -ht 1G | sort --reverse

คำอธิบาย :

หน่วยที่อธิบายไว้ในวิกิมีดังนี้:

K, M, G, T, P, E, Z, Y (พลังของ 1024) หรือ
KB, MB, GB, TB, PB, EB, ZB, YB (พลังของ 1,000)


0

ฉันพบปัญหาคล้ายกับที่ Martin Wilde อธิบายไว้ในกรณีของฉันเปรียบเทียบไดเรกทอรีเดียวกันบนเซิร์ฟเวอร์สองเครื่องที่แตกต่างกันหลังจากทำมิเรอร์ด้วย rsync

แทนที่จะใช้สคริปต์ฉันได้เพิ่มการ-bตั้งค่าสถานะduซึ่งนับขนาดเป็นไบต์และเท่าที่ฉันสามารถกำหนดความแตกต่างของเซิร์ฟเวอร์ทั้งสองได้ คุณยังสามารถใช้-s -hเพื่อรับเอาต์พุตที่เข้าใจได้


0

วางในสคริปต์เริ่มต้นเช่น. bashrc ... ปรับ def ตามต้องการ

duh() {
  # shows disk utilization for a path and depth level
  path="${1:-$PWD}"
  level="${2:-0}"
  du "$path" -h --max-depth="$level"
}

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.