Steuern, welche Dateien angezeigt werden sollen


10

Ich habe kürzlich meine Emacs-Konfiguration geändert, um Sicherungsdateien auszublenden, indem ich dem Dateinamen einen Punkt voranstelle. Dies brachte mich zum Nachdenken - gibt es eine Möglichkeit, das Verhalten in Bash zu ändern, um eine Liste beliebiger Globs für die auszublendenden Dateien zu verwenden? Ein kurzer Scan der Bash- und ls-Manpages ergab nichts.


Sie meinen, zB lsalle Dateien, die mit beginnen ignore-oder alle Dateien, die mit enden , ignorieren .bak?
Kevin

Ja, vorzugsweise mit der Möglichkeit, auch Platzhaltermusterabgleiche durchzuführen, ignorieren Sie - *. Bak, etc
Tim Brigham

Antworten:


9

lshat eine --hide=PATTERNOption, die so aussieht, als würde sie das tun, was Sie wollen, und die überschrieben werden kann, um sie mit -aoder anzuzeigen -A. Wenn dies automatisch geschehen soll, fügen Sie einen Alias ​​zu Ihrem hinzu ~/.bashrc(oder fügen Sie diesen Alias ​​hinzu, falls es wahrscheinlich bereits einen Alias ​​dafür gibt).

$ 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

Es gibt auch eine --ignore=PATTERN, die nicht durch die Optionen -aund überschrieben wird -A.


Vielen Dank für die Antwort, ich habe nur eine Frage: Warum ls --hide=*1 a*versteckt nichts nichts, listet aber trotzdem alle drei auf a-1 a-2 a-3? Ich hätte erwartet, dass es das versteckt a-1?
Sdaau

1
Das a*wird durch die Shell erweitert und enthält a-1. Die Option hide ignoriert keine Dateien, die explizit als Argumente benannt wurden.
Kevin

0

Hier ist mein Alias ​​für ls:

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

Das verbirgt Dateien wie backup.c~und #autosave.h#. (Und meiner Meinung nach mag ich Farben, also tut es das auch.)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.