ฉันต้องการแสดงรายการไฟล์ทั้งหมดในไดเรกทอรีที่ไม่มีนามสกุล
ตัวอย่างเช่น:
$ ls
a.txt b c.pdf d e.png
$ ls -someOption
b d
ฉันสามารถใช้คำสั่งอะไรแทนได้ls -someOption
บ้าง
.gitignore
ส่วนขยายหรือไม่
ฉันต้องการแสดงรายการไฟล์ทั้งหมดในไดเรกทอรีที่ไม่มีนามสกุล
ตัวอย่างเช่น:
$ ls
a.txt b c.pdf d e.png
$ ls -someOption
b d
ฉันสามารถใช้คำสั่งอะไรแทนได้ls -someOption
บ้าง
.gitignore
ส่วนขยายหรือไม่
คำตอบ:
shopt -s extglob ## enables extended globbing
ls !(*.*) ## matches every file except those containing a dot
คุณจะพบว่าการทำเช่นนี้จะแสดงเนื้อหาของทุกไดเรกทอรีในไดเรกทอรีทำงาน หากคุณไม่ต้องการสิ่งนี้ให้ใช้:
ls -d !(*.*)
คุณสามารถใส่shopt -s extglob
ในของคุณ~/.bashrc
จะมีมันเปิดใช้งานเมื่อใดก็ตามที่คุณเปิดสถานี มีบรรทัดใน Ubuntu เริ่มต้น~/.bashrc
(บรรทัดที่ 29 สำหรับฉันที่ 13.04) ที่คุณสามารถยกเลิกการคอมเม้นต์เพื่อเปิดใช้งานนี้ (และ globstar)
ดูวิกิของ Gregสำหรับข้อมูลเพิ่มเติมเกี่ยวกับทางเลือกที่หลากหลายของเชลล์ โปรดทราบว่านี่เป็นคุณสมบัติของ bash shell แทนที่จะเป็นls
คำสั่งดังนั้นคุณสามารถใช้กับคำสั่งอื่นได้
หรือคุณสามารถใช้
ls --ignore='*.*'
หรือ
ls -I '*.*'
... ซึ่งเป็นls
ตัวเลือกภายในแต่ extglob สามารถนำไปใช้กับคำสั่งโดยพลการใด ๆ & ดังนั้นจะมีประโยชน์มากขึ้นในความคิดของฉัน
ls !(*.*)
ทั้งงานls | grep -v \\.
และls | grep -v "\."