คำถามง่าย ๆ ฉันแน่ใจ ฉันเห็นคำตอบที่แสดงวิธีการรวมถึงไดเรกทอรีย่อย แต่ฉันต้องการทราบว่ามีกี่ไฟล์ (ไม่ใช่โฟลเดอร์) ในไดเรกทอรีปัจจุบันเท่านั้น ขอบคุณ
คำถามง่าย ๆ ฉันแน่ใจ ฉันเห็นคำตอบที่แสดงวิธีการรวมถึงไดเรกทอรีย่อย แต่ฉันต้องการทราบว่ามีกี่ไฟล์ (ไม่ใช่โฟลเดอร์) ในไดเรกทอรีปัจจุบันเท่านั้น ขอบคุณ
คำตอบ:
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 แสดงความลึกของการค้นหา
คุณสามารถติดตั้งกับtreesudo apt-get install tree
หากต้องการนับจำนวนไฟล์ทั้งหมดที่มีนามสกุลเฉพาะคุณสามารถพิมพ์:
ls|grep jpg |wc -l