คำถามง่าย ๆ ฉันแน่ใจ ฉันเห็นคำตอบที่แสดงวิธีการรวมถึงไดเรกทอรีย่อย แต่ฉันต้องการทราบว่ามีกี่ไฟล์ (ไม่ใช่โฟลเดอร์) ในไดเรกทอรีปัจจุบันเท่านั้น ขอบคุณ
คำถามง่าย ๆ ฉันแน่ใจ ฉันเห็นคำตอบที่แสดงวิธีการรวมถึงไดเรกทอรีย่อย แต่ฉันต้องการทราบว่ามีกี่ไฟล์ (ไม่ใช่โฟลเดอร์) ในไดเรกทอรีปัจจุบันเท่านั้น ขอบคุณ
คำตอบ:
ls -F |grep -v / | wc -l
ls -F
รายการไฟล์ทั้งหมดและตัวบ่งชี้ผนวก (หนึ่งใน * / => @ |) รายการ grep -v /
เก็บสตริง de ทั้งหมดที่ไม่มีเครื่องหมายทับ wc -l
นับบรรทัดลองสิ่งนี้
ls -al | grep ^[-] | wc -l
ls -al
- รายการไฟล์ทั้งหมดที่มีรูปแบบรายชื่อยาวgrep ^[-]
- ค้นหาสตริงที่เริ่มต้นด้วย "-" ที่เป็นสัญลักษณ์สำหรับแสดงถึงไฟล์ปกติเมื่อไฟล์รายการที่มี ls -alwc -l
- นับจำนวนเส้น-
ด้วยl
ผมแค่อยากจะเพิ่มthom ของคำตอบเพราะผมชอบที่จะเล่นกับทุบตี นี่มันไป:
echo "Directory $(pwd) has $(ls -F |grep -v / | wc -l) files"
ร้องเป็นตัวอย่างผลของ/data
ไดเรกทอรีของฉัน:
Directory /data has 580569 file(s).
และคำอธิบายของฉันตะโกน:
echo double-quoted-message
จะพิมพ์ข้อความที่ต้องการ$(any-desirable-valid-command)
ภายในข้อความที่ยกมาสองครั้งของecho
จะจะพิมพ์ผลของการดำเนินการคำสั่งที่เกี่ยวข้องpwd
จะพิมพ์ไดเรกทอรีปัจจุบันls -F
ใช้สำหรับแสดงรายการไฟล์ทั้งหมดและตัวบ่งชี้ผนวก (หนึ่งใน * / => @ |) ไปยังรายการ ผมคัดลอกนี้จากคำตอบของทอมgrep -v /
เป็นคำสั่งสำหรับค้นหาข้อความล้วน-v /
พารามิเตอร์จะเก็บสตริงทั้งหมดที่ไม่มีเครื่องหมายทับ (es)wc -l
จะพิมพ์การนับบรรทัดฉันรู้ว่าคำถามนี้มีอายุ 3 ปีฉันแค่ไม่อยากจะเพิ่มคำตอบอีก
หากคุณtree
ติดตั้งบนระบบของคุณคุณสามารถใช้คำสั่งนี้:
tree -L 1 /path/to/your/directory | tail -n 1
มันแสดงจำนวนไฟล์และไดเรกทอรีในไดเรกทอรีนั้น
-L n
แสดงความลึกของการค้นหา
คุณสามารถติดตั้งกับtree
sudo apt-get install tree
หากต้องการนับจำนวนไฟล์ทั้งหมดที่มีนามสกุลเฉพาะคุณสามารถพิมพ์:
ls|grep jpg |wc -l