ฉันสังเกตเห็นพฤติกรรมแปลก ๆ พร้อมdu
คำสั่งเมื่อใช้กับ-L
ตัวเลือกบรรทัดคำสั่ง
ฉันใช้ Slackware 14 และ Coreutils 8.19
ในการทำให้เกิดพฤติกรรมแปลก ๆ ให้สร้างสองโฟลเดอร์:
mkdir foo
mkdir bar
สร้างไฟล์ภายในหนึ่งในโฟลเดอร์:
perl -e 'print "A"x10000' > foo/text
และ symlink ในโฟลเดอร์อื่น:
ln -s ../foo/text bar/text
ตอนนี้ถ้าคุณพิมพ์:
du -h -L bar
คุณจะได้รับ:
16k bar
เนื่องจาก symlink ถูกยกเลิกการลงทะเบียน แต่ถ้าคุณพิมพ์:
du -h -L *
คุณจะได้รับ:
16K foo
4.0K bar
และ symlink จะไม่ถูกยกเลิกการลงทะเบียน ฉันพลาดอะไรไปรึเปล่า?
du
ต้องการเล่นที่นี่อย่างชาญฉลาด แต่ถ้าคุณเรียกใช้df -a -L bar foo
เอาต์พุตนั้นผิดมาก (การนับ 16K ในบาร์ปล่อยให้ foo ว่างเปล่า)