Mengontrol file apa yang akan ditampilkan


10

Baru-baru ini saya mengubah konfigurasi emacs saya untuk menyembunyikan file cadangan dengan menambahkan sebuah titik ke nama file. Ini membuat saya berpikir - apakah ada cara siap untuk mengubah perilaku dalam Bash untuk menggunakan daftar gumpalan sewenang-wenang untuk menyembunyikan file apa? Pemindaian cepat halaman bash dan manual tidak menemukan apa pun.


Maksud Anda, misalkan Anda telah lsmengabaikan semua file yang dimulai dengan ignore-atau semua file yang diakhiri .bak?
Kevin

Ya, lebih disukai dengan kemampuan melakukan pencocokan pola wildcard juga, abaikan - *. Bak, dll
Tim Brigham

Jawaban:


9

lsmemiliki --hide=PATTERNopsi yang sepertinya melakukan apa yang Anda inginkan dan dapat diganti untuk menunjukkan kepada mereka dengan -aatau -A. Jika Anda ingin ini terjadi secara otomatis, tambahkan alias di ~/.bashrc(atau, jika kemungkinan sudah ada alias untuk itu, tambahkan ke alias itu).

$ 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

Ada juga --ignore=PATTERNyang tidak diganti oleh opsi -adan -A.


Terima kasih atas jawabannya, saya hanya punya satu pertanyaan: mengapa ls --hide=*1 a*tidak menyembunyikan apa pun, tetapi masih mencantumkan ketiganya a-1 a-2 a-3? Saya akan berharap untuk menyembunyikannya a-1?
sdaau

1
Ini a*diperluas oleh shell dan termasuk a-1. Opsi sembunyikan tidak mengabaikan file yang secara eksplisit disebut sebagai argumen.
Kevin

0

Inilah alias saya untuk ls:

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

Itu menyembunyikan file seperti backup.c~dan #autosave.h#. (Dan, seperti aku, aku suka warna, jadi itu juga.)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.