ฉันจะใช้lsใน linux เพื่อดูรายการวันที่และชื่อไฟล์ได้เท่านั้น ฉันไม่ต้องการเห็นข้อมูลอื่นเช่นเจ้าของหรือการอนุญาต เป็นไปได้ไหม
ฉันจะใช้lsใน linux เพื่อดูรายการวันที่และชื่อไฟล์ได้เท่านั้น ฉันไม่ต้องการเห็นข้อมูลอื่นเช่นเจ้าของหรือการอนุญาต เป็นไปได้ไหม
คำตอบ:
ทำไมไม่ใช้statแทนls?
stat -c "%y %s %n" *
find . -type f -print0 | xargs -0 stat -c "%y %s %n"
statคุณสามารถเพิ่มข้อมูลความกว้างให้กับสตริงรูปแบบเช่นฟังก์ชั่น C printf เช่น"%y %8s %n"ไม่ได้รับการบันทึก แต่ดูเหมือนว่าจะใช้งานได้ (coreutils 8.17, Fedora 18)
lsฉันสามารถส่งออกด้วยตัวคั่นถ่านหนึ่งพัน มันทำงานstatอย่างไร
lsแต่คุณจะสูญเสียผลประโยชน์ทั้งหมดจาก แล้วสีล่ะ?
คุณสามารถควบคุมได้มากเกี่ยวกับวิธีแสดงรายการไฟล์ด้วยfindยูทิลิตี้ lsไม่อนุญาตให้คุณระบุคอลัมน์ที่คุณต้องการ
ตัวอย่างเช่น:
$ find . -maxdepth 1 -printf '%CY%Cm%Cd.%CH%CM\t%s\t%f\n'
20111007.0601 4096 .
20111007.0601 2 b
20111001.1322 4096 a
อาร์กิวเมนต์ของprintfการดำเนินการเป็นรายละเอียดใน manpage คุณสามารถเลือกข้อมูลเวลาที่แตกต่างกันขนาดที่คุณต้องการ (ขนาดไฟล์หรือบล็อกดิสก์ที่ใช้) ฯลฯ คุณสามารถทำให้ปลอดภัยสำหรับชื่อไฟล์ที่ผิดปกติหากต้องการการประมวลผลเพิ่มเติม
%C+(เอาต์พุต "2016-08-29 + 10: 57: 56.9201257840") และ%Cc(เอาท์พุท "Mo 29 ส.ค. 2016 10:57:56 CEST")
คุณสามารถใช้ยูทิลิตีอื่นเช่นจัดawkรูปแบบผลลัพธ์ls1 :
/bin/ls -ls | awk '{print $7,$8,$9}'
1. ใช่โดยทั่วไปคุณไม่ควรแยกวิเคราะห์ผลลัพธ์ของ lsแต่ในกรณีนี้คำถามจะเรียกมันโดยเฉพาะ ...
lsเป็นนามแฝง (พูดalias ls='ls -i') คุณควรระมัดระวังเป็นอย่างมากหากคุณต้องการแยกวิเคราะห์เอาต์พุต ls
lsแต่นั่นคือสิ่งที่ OP ต้องการ ...
/bin/lsจะหลีกเลี่ยงปัญหานามแฝง.)
lsที่เราทั้งสองตกลงจะไม่ตอบสนองความต้องการช่องว่าง /bin/lsข้อเสนอแนะเป็นหนึ่งที่ดี
-hเพื่อทำให้มนุษย์อ่านได้ ฉันใช้เฉพาะ: ls -lah | awk '{print $5,$6,$7,$8}'ซึ่งให้ผล: 4.0K Jan 24 18:17. จริงอยู่ที่โซลูชันดั้งเดิมไม่ได้พูดอะไรเกี่ยวกับ awk แต่ใน linux เราควรถือว่าเอาต์พุตของกระบวนการจะเป็นอินพุตของกระบวนการอื่นเสมอใช่ไหม ;)
คุณยังสามารถใช้คำสั่ง 'วันที่' มันใช้งานง่ายมาก:
date -r [ชื่อไฟล์]
date -r foo*.txt->date: extra operand "foo2.txt"
หากคุณต้องการใช้ ls แต่รักษาขนาดที่เหมาะสมคุณสามารถใช้:
ls -Ss1pq --block-size=1
โดยที่ space ถูกกำหนดเป็นตัวคั่นและ f6 หมายถึงฟิลด์ 6
ls -lt | cut -d" " -f6-
คุณสามารถไปป์ไลน์สองคำสั่ง
ls -l|cut -d" " -f5
ls -s1ส่งคืนขนาดไฟล์และชื่อบน AIX เท่านั้นไม่แน่ใจเกี่ยวกับ Linux
lsดีมากเนื่องจากมีการเรียงลำดับอย่างรวดเร็วตามวันที่และเวลา แต่การจัดรูปแบบยากที่จะจัดการ ฉันขอแนะนำให้ใช้โทเค็นที่ - เวลาสไตล์เหมือน--time-style='+&%Y%m%d+%H%M%S.%N'ที่โทเค็นคือ '&' โดยใช้เป็นข้อมูลอ้างอิงคุณสามารถแยกวิเคราะห์เอาต์พุตด้วยเพิ่มเติมsedเพื่อให้คุณสามารถย้อนรอยก่อนโทเค็นมีขนาด! หากใครต้องการโพสต์ข้อความนี้เป็นคำตอบที่สมบูรณ์อย่าลังเลที่จะนอนตอนนี้ฉันนอนหลับเกินไปแล้ว :)