ควบคุมไฟล์ที่จะแสดง


10

ฉันเพิ่งเปลี่ยน emacs ของฉันเพื่อซ่อนไฟล์สำรองโดยเพิ่มจุดเป็นชื่อไฟล์ นี่ทำให้ฉันคิดว่า - มีวิธีที่พร้อมที่จะเปลี่ยนพฤติกรรมภายใน Bash เพื่อใช้รายการ globs โดยพลการสำหรับไฟล์ที่ซ่อนหรือไม่? การสแกนอย่างรวดเร็วของ bash และ ls man pages นั้นไม่ได้เกิดอะไรขึ้น


คุณหมายถึงเช่นlsละเว้นไฟล์ทั้งหมดที่ขึ้นต้นด้วยignore-หรือไฟล์ทั้งหมดที่ลงท้ายด้วย.bak?
เควิน

ใช่โดยเฉพาะอย่างยิ่งกับความสามารถในการจับคู่รูปแบบไวด์การ์ดเช่นกันละเว้น - *. bak ฯลฯ
Tim Brigham

คำตอบ:


9

lsมี--hide=PATTERNตัวเลือกที่ดูเหมือนว่ามันไม่สิ่งที่คุณต้องการและสามารถแทนที่ที่จะแสดงให้พวกเขาด้วยหรือ-a -Aหากคุณต้องการให้สิ่งนี้เกิดขึ้นโดยอัตโนมัติให้เพิ่มชื่อแทนใน~/.bashrc(หรือในกรณีที่เป็นไปได้ว่ามีนามแฝงอยู่แล้วให้เพิ่มชื่อแทนเข้าไปในนามแฝงนั้น)

$ touch {a,b,c}-{1,2,3}
$ ls
a-1  a-2  a-3  b-1  b-2  b-3  c-1  c-2  c-3
$ ls --hide=a*
b-1  b-2  b-3  c-1  c-2  c-3
$ ls --hide=*1
a-2  a-3  b-2  b-3  c-2  c-3
$ ls --hide=a*1
a-2  a-3  b-1  b-2  b-3  c-1  c-2  c-3
$ ls --hide=a*1 -A
a-1  a-2  a-3  b-1  b-2  b-3  c-1  c-2  c-3

นอกจากนี้ยังมี--ignore=PATTERNที่ไม่ได้แทนที่โดย-aและ-Aตัวเลือก


ขอบคุณสำหรับคำตอบที่ฉันมีเพียงหนึ่งคำถาม: ทำไมไม่ls --hide=*1 a*ได้ปิดบังอะไร แต่ยังคงแสดงรายการทั้งสามa-1 a-2 a-3? ฉันคาดว่าจะซ่อนa-1หรือไม่
sdaau

1
มีการขยายจากเปลือกและรวมถึงa* a-1ตัวเลือกซ่อนจะไม่เพิกเฉยต่อไฟล์ที่มีชื่ออย่างชัดเจนว่าเป็นอาร์กิวเมนต์
Kevin

0

นี่คือชื่อแทนของฉันสำหรับls:

alias ls="ls --color=auto --hide='*~' --hide='#*#'"

ว่าไฟล์หนังชอบและbackup.c~ #autosave.h#(และฉันเป็นคนดื้อดึงฉันชอบสีดังนั้นก็เช่นกัน)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.