ฉันจะแสดงรายการไดเรกทอรีด้วย ls และเรียงลำดับโดยเจ้าของและกลุ่มได้อย่างไร
ฉันจะแสดงรายการไดเรกทอรีด้วย ls และเรียงลำดับโดยเจ้าของและกลุ่มได้อย่างไร
คำตอบ:
ลองสิ่งนี้:
ls -l | awk '{print $3, $4, $8}' | sort
มันจะพิมพ์ชื่อผู้ใช้ชื่อกลุ่มและชื่อไฟล์โดยมีเงื่อนไขว่าชื่อไฟล์ไม่มีช่องว่าง หรือคุณสามารถพิมพ์:
ls -l | awk '{print $3, $4, $0}' | sort
สิ่งนี้จะพิมพ์ชื่อผู้ใช้ชื่อกลุ่มและls -l
เอาท์พุทแบบเต็มเรียงตามชื่อผู้ใช้ก่อนจากนั้นจึงls -l
พิมพ์ชื่อกลุ่มจากนั้นพิมพ์สิ่งใดก็ตามก่อน
โปรดทราบว่าหมายเลขคอลัมน์จริงอาจแตกต่างกันไปขึ้นอยู่กับการกระจายของคุณ ฉันลองของฉันใน SUSE และ coreutils เวอร์ชัน 5.2.1
อาจมีโซลูชั่นที่ดีกว่าและซับซ้อนกว่า แต่นี่เป็นวิธีที่ง่ายที่สุดและจะใช้งานได้เกือบตลอดเวลา
ตามที่ petersohn กล่าวว่าสิ่งที่คล้ายกับ:
ls -l | awk '{print $3, $4, $8, $0}' | sort | column -t
$8
และcolumn -t
สำหรับการพิมพ์สวยหรือดีกว่า:
ls -l | sort -k 3
- เรียงลำดับตามเจ้าของและโดยค่าเริ่มต้นจะเรียงลำดับฟิลด์ถัดไป (กลุ่ม) และเปิดls -l | sort -k 4,4 -k 3
- เรียงลำดับตามกลุ่มแล้วโดยเจ้าของls -l | sort -k 3,3 -k 8
- เรียงลำดับโดยเจ้าของแล้วตามด้วยชื่อไฟล์หมายเหตุ:เครื่องหมายจุลภาคเป็นฟิลด์เทอร์มิเนเตอร์ดังนั้น3,3
เริ่มและสิ้นสุดที่ฟิลด์ 3 3,5
เรียงจากฟิลด์ 3 ถึง 5