ความสับสนในการเรียงลำดับไฟล์


0

ไตรมาสที่ 1 ฉันมีคำสั่งและฉันสับสนว่าทำไมการเรียงลำดับขนาดไฟล์เป็นกิโลไบต์เป็นเมกะไบต์

$ find ~ -maxdepth 1 -size + 1024c -type f -exec du -h {} \; | เรียงลำดับ -nr

80K /home/sl6/S3401636/Lab 4- Reporting Overview in IBM RQM(2).pdf
20K /home/sl6/S3401636/.bash_history
8.5M    /home/sl6/S3401636/Software-Testing-Chapter-4-Test Design Techniques.pdf
7.7M    /home/sl6/S3401636/Software-Testing-Chapter-2 Software Lifecycle.pdf
6.2M    /home/sl6/S3401636/Week5b.ppt
5.1M    /home/sl6/S3401636/Software-Testing-Chapter-5-Test Management.pdf
4.7M    /home/sl6/S3401636/Week 9 - Mobile devices.ppt
4.0K    /home/sl6/S3401636/.viminfo
3.4M    /home/sl6/S3401636/Software-Testing-Chapter-3-Static Techniques.pdf
3.2M    /home/sl6/S3401636/Software-Testing-Chapter-6.pdf
1.9M    /home/sl6/S3401636/Week5a.ppt
1.8M    /home/sl6/S3401636/Lab 8 - Results and Report Analysis(2).pdf
1.6M    /home/sl6/S3401636/Lab 7 - Running a Schedule in IBM's RPT(2).pdf
1.4M    /home/sl6/S3401636/lab01(3).pdf
1.3M    /home/sl6/S3401636/Week 10 Human Capabilities.pdf
1.2M    /home/sl6/S3401636/week05.pdf

ถ้าฉันไพพ์คำสั่ง "head" ไปยังจุดสิ้นสุด

$ find ~ -maxdepth 1 - ขนาด + 1024c- พิมพ์ f -exec du -h {} \ | เรียงลำดับ -nr | หัว -14

1.2M    /home/sl6/S3401636/week05.pdf
1.3M    /home/sl6/S3401636/Week 10 Human Capabilities.pdf
1.4M    /home/sl6/S3401636/lab01(3).pdf
1.6M    /home/sl6/S3401636/Lab 7 - Running a Schedule in IBM's RPT(2).pdf
1.8M    /home/sl6/S3401636/Lab 8 - Results and Report Analysis(2).pdf
1.9M    /home/sl6/S3401636/Week5a.ppt
3.2M    /home/sl6/S3401636/Software-Testing-Chapter-6.pdf
3.4M    /home/sl6/S3401636/Software-Testing-Chapter-3-Static Techniques.pdf
4.0K    /home/sl6/S3401636/.viminfo
4.7M    /home/sl6/S3401636/Week 9 - Mobile devices.ppt
5.1M    /home/sl6/S3401636/Software-Testing-Chapter-5-Test Management.pdf
6.2M    /home/sl6/S3401636/Week5b.ppt
7.7M    /home/sl6/S3401636/Software-Testing-Chapter-2 Software Lifecycle.pdf
8.5M    /home/sl6/S3401636/Software-Testing-Chapter-4-Test Design Techniques.pdf

Q2. ฉันสงสัยว่าฉันจะหาชื่อไฟล์ได้อย่างไรโดยไม่ต้องใช้เส้นทางเต็ม ฉันลอง awk ด้วยชื่อฐาน แต่ไม่สามารถใช้งานได้

Q3.Also ฉันจะไปเกี่ยวกับรายการขนาดไฟล์สูงสุด (สูงสุดไปต่ำสุดและต่ำสุดไปสูงสุด) ได้อย่างไร

เช่น 8.5M, 7.7M, 6.2M, 5.1M (สูงสุดไปต่ำสุด) 5.1M, 6.2M, 7.7M, 8.5M

แทนที่จะเริ่มจากขนาดไฟล์ต่ำสุด 1.2M

ฉันคิดว่าฉันสามารถใช้ "หาง" สำหรับสถานการณ์นี้

Q4.Finally ถ้าฉันลบตัวเลือก -h สำหรับ "du" ในคำสั่งข้างต้นฉันได้รับรายการชุดของผลลัพธ์ ทำไม?

4   /home/sl6/S3401636/.viminfo
20  /home/sl6/S3401636/.bash_history
80  /home/sl6/S3401636/Lab 4- Reporting Overview in IBM RQM(2).pdf
1132    /home/sl6/S3401636/week05.pdf
1300    /home/sl6/S3401636/Week 10 Human Capabilities.pdf
1424    /home/sl6/S3401636/lab01(3).pdf
1628    /home/sl6/S3401636/Lab 7 - Running a Schedule in IBM's RPT(2).pdf
1812    /home/sl6/S3401636/Lab 8 - Results and Report Analysis(2).pdf
1924    /home/sl6/S3401636/Week5a.ppt
3208    /home/sl6/S3401636/Software-Testing-Chapter-6.pdf

คำตอบ:


1
  1. สิ่งนี้ไม่เกี่ยวข้องกับ KB และ MB ในตัวอย่างของคุณ คุณกำลังเรียงลำดับตัวเลขในลำดับย้อนกลับ 80 และ 20 มีขนาดใหญ่กว่า 8.5 ดังนั้นพวกเขาจะได้แสดงก่อน ตัวอักษรจะถูกละเว้นสำหรับการเรียงลำดับ ดู 4.0K ซึ่งอยู่ตรงกลางรายการของคุณ

  2. find ~ -maxdepth 1 -size +1024c -type f -exec du -h {} \; | sort -nr | head -14 | awk '{print $2}' | xargs -l basename

  3. วิธีที่ง่ายที่สุดคือการใช้ sort -hr ถ้ารุ่นของคุณ sort รองรับมัน ฉันมี จัดเรียง (GNU coreutils) 8.22 และมันใช้งานได้อย่างมีเสน่ห์

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


อาร์กิวเมนต์สำหรับหัวแตกต่างกัน แต่ตอนนี้เนื่องจากคุณอธิบายข้อเท็จจริงที่ว่ามันไม่สนใจเครื่องหมาย KB และ MB (80 มากกว่า 8.5) ตอนนี้ฉันเข้าใจแล้วว่าทำไมการลบ -h จึงให้ผลลัพธ์ที่แตกต่าง ขอบคุณสำหรับคำตอบที่เป็นประโยชน์
bigubosu

awk '{print $ 2}' คว้าคำแรกของชื่อไฟล์เท่านั้น
bigubosu

พบว่าคุณสามารถใช้ awk '{print% NF}'
bigubosu

0

แทนที่จะใช้ awk '{print $ 2}' | args -l basename ฉันใช้ไปแล้ว

- พิมพ์ "% s% f \ n"

ชอบมาก:

find ~ -maxdepth 1 -size +1024c -type f -printf "%s %f\n" | sort -nr | head -14

% f - พิมพ์ชื่อไฟล์ % s - พิมพ์ขนาด

ลบคำสั่ง du, awk และ xargs

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