วิธีใช้ du เพื่อดูไฟล์ที่มีขนาดใหญ่กว่าเกณฑ์


9

ฉันมีบางสถานการณ์ที่ฉันไม่เห็นสิ่งใดในหน้าเพจของผู้ชาย

1) ฉันต้องการดูไฟล์ในไดเรกทอรีย่อยซึ่งมีขนาดใหญ่กว่าขนาดเฉพาะเท่านั้น 2) ฉันใช้ du -sh> du_output.txt ฉันเห็นผลลัพธ์ตามที่อธิบายไว้สำหรับตัวเลือก -s และ -h ว่าสิ่งที่ฉันสนใจมากขึ้นคือถ้าเอาท์พุทมาในรูปแบบที่พูดเช่น

 dir0--->dir1-->dir3-->dir4 
       |             | 
       ->dir2        |-file1
                     |-file2

หากข้างต้นเป็นรูปแบบไดเรกทอรีและฉันต้องการเพียงแค่ดูขนาดของแต่ละไดเรกทอรีในไดเรกทอรีย่อยทั้งหมดแล้วฉันจะทำอย่างไร (ความลึกของแต่ละไดเรกทอรีย่อยเป็นตัวแปร)

คำตอบ:


5

ฉันชอบอรรถประโยชน์gt5 มันใช้ผลลัพธ์duและสร้างรายการไดเรกทอรีที่สามารถเรียกดูได้และขนาดและใช้เบราว์เซอร์โหมดข้อความเช่นลิงก์เพื่อแสดงข้อมูล

โปรแกรมทั้งสองมีอยู่ในที่เก็บ Ubuntu: GT5และการเชื่อมโยง

ภาพหน้าจอ gt5


ขอบคุณ gt5 ดูน่าสนใจมาก ฉันจะติดตั้งทันที แน่นอนว่ายังมี "baobab" สำหรับ GUI
SabreWolfy

22

วิธีแสดงโฟลเดอร์ที่มีขนาดเกิน 1GB เท่านั้น:

du -h --threshold=1G

คุณอาจต้องการสั่งซื้อตามขนาดเพื่อหาสินค้าที่ใหญ่ที่สุด
du -h --threshold=1G | sort -h

(ใช้งานได้บน: Ubuntu / Mint
ไม่ทำงานบน: OSX หรือ RHEL 6.2)


2
เลวร้ายเกินไป--thresholdไม่ทำงานบน OS X.
Franklin Yu

ยังไม่ทำงานกับ RHEL 6.2
Matthew Moisen

นอกจากนี้บน Ubuntu ยังระบุด้วยว่าsort -hnhn นั้นใช้ร่วมกันไม่ได้
Scott Stafford

1
@ScottStafford ขอบคุณสำหรับการพิมพ์ผิดแก้ไข ควรอ่านอย่างเดียวsort -h
Mtl Dev

วิธีการแสดงไฟล์เกิน 500KB? (แทนโฟลเดอร์)
Alexander Mills

12

ใช้คำสั่ง find แทน ตัวอย่างต่อไปนี้จะแสดงไฟล์ทั้งหมดที่มีขนาดใหญ่กว่า 10 เมกะไบต์:

find -size +10M

คุณสามารถใช้ du พร้อมค้นหาเช่นนี้เพื่อดูขนาดของแต่ละไฟล์:

find -size +10M -exec du -sh {} \;

0

find /path/to/folder -size +100k

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


ทั้งสองสิ่งโดยปกติฉันต้องทำรายงานและในการที่ฉันจะต้องเป็นตัวแทนใน 2 วิธีทั้งสองที่คุณชี้
บอนด์

ฉันคิดว่า gt5 ที่กล่าวถึงข้างต้นอาจเป็นสิ่งที่คุณกำลังมองหา
SabreWolfy

0

ฉันเห็นคำตอบของ Mtl Dev เหมาะสำหรับคำถามนี้ เนื่องจาก Bond ได้เปิดกระทู้นี้ด้วยแท็ก 'linux' และ 'ubuntu-10.04'
อีกครั้งdu -h --threshold=1G(ตามมาด้วย| sort -hตัวเลือก) ทำงานได้อย่างสมบูรณ์แบบใน Ubuntu

แม้ว่าบอร์นจะพูดอย่างนั้น

ฉันไม่เห็นสิ่งใดในหน้าผู้ชาย

มีสองบรรทัดใน man page โปรดอ้างอิงด้านล่าง

-t, --threshold = SIZE
ไม่รวมรายการที่มีขนาดเล็กกว่า SIZE หากบวกหรือรายการที่มากกว่า SIZE ถ้าลบ

อีกอย่างฉันคิดว่าบรรทัดคำสั่งที่แน่นอนที่บอนด์ต้องการคือสิ่งนี้

find . -mindepth 2 -type d | xargs du -sh -t 1G

เมื่อ-mindepth 1อ้างว่าควรมีเส้นทางปัจจุบัน-mindepth 2จะทำงานตามความต้องการของคุณ

ด้านล่างนี้คือการสาธิตในชุดข้อมูลที่นิยมลิซ่า

~/dataset/lisa $ find . -mindepth 2 -type d | xargs du -sh -t 1G | sort -h
1.2G    ./aiua120306-0/frameAnnotations-DataLog02142012_002_external_camera.avi_annotations
1.7G    ./aiua120306-1/frameAnnotations-DataLog02142012_003_external_camera.avi_annotations
4.0G    ./negatives/negativePics
6.0G    ./experiments/training

~/dataset/lisa $ find . -mindepth 2 -type d | xargs du -sh -t 1G
4.0G    ./negatives/negativePics
1.2G    ./aiua120306-0/frameAnnotations-DataLog02142012_002_external_camera.avi_annotations
6.0G    ./experiments/training
1.7G    ./aiua120306-1/frameAnnotations-DataLog02142012_003_external_camera.avi_annotations

~/dataset/lisa $ find . -mindepth 2 -type d | xargs du -sh -t 3G
4.0G    ./negatives/negativePics
6.0G    ./experiments/training
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.