เหตุใดจึงไม่แสดงไฟล์ / โฟลเดอร์ที่ซ่อนอยู่


140

ฉันมองผ่านระบบของฉันด้วยdu -sch ./*เพื่อค้นหาไฟล์ไร้ประโยชน์ขนาดใหญ่ที่ฉันอาจเก็บไว้โดยไม่มีเหตุผลเมื่อฉันพบสิ่งนี้:

$ du -sch ./*
du: cannot read directory ‘./drbunsen/.gvfs’: Permission denied
du: cannot read directory ‘./drbunsen/.cache/dconf’: Permission denied
18G ./drbunsen
18G total

$ cd drbunsen/
$ du -sch ./*
601M ./Desktop
20K ./Documents
598M ./Downloads
4.0K ./flash
4.0K ./Music
8.0M ./Pictures
4.0K ./Public
4.0K ./Templates
4.0K ./Ubuntu One
8.0K ./Videos
11G ./VirtualBox VMs
6.9M ./workspace
12G total

ฉันจะทำให้ไฟล์ที่ซ่อนอยู่มองเห็นได้อย่างไร ให้ผลเช่นเดียวกับdu -sch ./.*du -sch ./*


du -hs .[^.]* *สำหรับไฟล์ที่ซ่อนทั้งหมดยกเว้น .และ..คำตอบอื่น ๆ ดูเหมือนจะหายไป
laggingreflex

คำตอบ:


245

ใช้

du -sch .[!.]* * |sort -h

ในโฟลเดอร์บ้านของคุณ

อีกวิธีหนึ่งคำสั่งที่ฉันใช้บ่อยที่สุดคือ

ncdu

ติดตั้งง่ายหากจำเป็น:

sudo apt-get install ncdu

1
ขอบคุณคุณเป็นอัจฉริยะ ฉันไม่ใช่เจ้านายที่ทุบตีทำอะไร [!.] ทำอะไร?
Dr_Bunsen

10
@Dr_Bunsen: มันเป็น glob .ที่แสดงรายการไฟล์ทั้งหมดที่เริ่มต้นด้วยการเป็นหนึ่งเดียว นี่คือเคล็ดลับเรียบร้อย: ถ้าคุณไม่รู้ว่าสิ่งที่ดูเป็นก้อนอะไรลองวิ่งecho .[!.]*หรืออะไรก็ตาม จากนั้นเชลล์จะขยาย glob และส่งไปยังechoพิมพ์รายการของไฟล์ที่เป็นผลลัพธ์
Tikhon Jelvis

14
ที่ล้มเหลวในรายการไฟล์ที่มีชื่อเหมือน และอาจทำให้เกิดปัญหากับไฟล์ที่มีชื่อขึ้นต้นด้วย..foo -นอกจากนี้ยังอาจล้มเหลวหากรายการ ARG ยาวเกินไป du -ahd1จะไม่มีปัญหาเหล่านั้น
Stéphane Chazelas

ไม่เกี่ยวข้องกับคำถามเดิม แต่ที่เกี่ยวข้องกับวันการใช้งานวัน: มันอาจจะมีประโยชน์ที่จะรวมถึง 'C' สวิทช์ที่จะแสดงยอดรวมและเพื่อเรียงลำดับตัวเลือกบิตที่จะทำให้คำสั่งนี้นิด ๆ หน่อย ๆ du -cksh .[!.]* * |sort -hง่ายต่อการจดจำ:
Daddy32

56

ฉันมีคำถามเดียวกันในรายชื่อผู้รับจดหมาย coreutils เพราะมันยากที่ฉันจะจำคำสั่งพิลึกนี้โดย @ don.joey และ Bob Proulx เสนอคำสั่งที่ดีกว่าเป็นธรรมชาติยิ่งขึ้น du -ahd1 | sort -h

หากคุณต้องการแสดงรายการไฟล์ทั้งหมดในไดเรกทอรีปัจจุบันให้ใช้ '.' หรืออย่าให้อาร์กิวเมนต์ไฟล์ใด ๆ เลย นอกจากนี้คุณอาจต้องการใช้ตัวเลือก -d, --max-depth = N

ลองสิ่งนี้:

du -hd1


7
เพิ่ม-aตัวเลือกเพื่อให้เทียบเท่า
Stéphane Chazelas

6
นี่ควรเป็นคำตอบที่ได้รับการยอมรับเพราะง่ายต่อการจดจำและเข้าใจ
Bastien

8

เมื่อคุณเรียกใช้คำสั่งเดียวกันนั้นในไดเรกทอรีมันจะไม่รวมไฟล์ที่ซ่อนซึ่งเริ่มต้นด้วย.การนับ หากคุณมี Steam ติดตั้งไว้เช่นนั้นจะเป็นค่าเริ่มต้นในการติดตั้งเกมภายใต้~/.local/share/Steam/และติดตั้งไว้ที่นั่นเช่นกัน

ภายใต้ทุบตีคุณจำเป็นต้องเรียกใช้du -sch .[!.]* *เนื่องจากไม่ขยาย.*glob อย่างถูกต้อง ภายใต้zshหรือเปลือกอื่น ๆdu -sch * .*ควรทำงานตามที่.*ควรจะขยายเพื่อรวมรายการของไฟล์ที่ซ่อนอยู่ทั้งหมดในไดเรกทอรีปัจจุบัน


ตกลง. .*นอกจากนี้เห็นได้ชัดว่ามีปัญหากับทุบตีแล้วขณะที่มันดูเหมือนจะไม่ถูกต้องขยาย แต่ไม่ทำในสิ่งที่ถูกต้องภายใต้du -sch * .* zshภายใต้ bash du -sch .*ดูเหมือนว่าจะนับ.แต่ไม่ขยายเพื่อแสดงไฟล์แยก
dobey

สำหรับฉัน. * ยังขยายเป็น ../* ด้วยเหตุนี้ du จึงออกจากไดเรกทอรีที่ฉันต้องการดูขนาด! ฉันต้องใช้. /.^^. เหมือนกันแทน
Ari

มันคือ zsh และกระสุนทั้งหมดที่ได้มาจาก Forsyth shell (ปัจจุบันส่วนใหญ่เป็น pdksh และอนุพันธ์ของมัน) ที่ทำในสิ่งที่ถูกต้องและไม่ขยายตัว และที่นี่. กระสุนคล้ายบอร์นอื่น ๆ ทั้งหมดทำ (ทุบตีบอร์น AT&T ksh, ประ, yash ... ) ในzshคุณต้องการใช้แต่ไม่ได้du -sch -- *(D) du -sch -- * .*
Stéphane Chazelas
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.