it-swarm.com.de

Listen Sie alle Dateien auf, die keine Erweiterungen haben

Ich möchte alle Dateien in einem Verzeichnis auflisten, die keine Erweiterungen haben.

Zum Beispiel:

$ ls
a.txt    b      c.pdf     d     e.png
$ ls -someOption
b       d

Welchen Befehl kann ich anstelle von ls -someOption verwenden?

11
NewMrd
shopt -s extglob ## enables extended globbing
ls !(*.*) ## matches every file except those containing a dot

Sie werden feststellen, dass Ihnen auf diese Weise der Inhalt jedes Verzeichnisses im Arbeitsverzeichnis angezeigt wird. Wenn du das nicht willst, benutze:

ls -d !(*.*)

Sie können shopt -s extglob in ~/.bashrc einfügen, damit es aktiviert wird, wenn Sie ein Terminal öffnen. Es gibt bereits eine Zeile in Ubuntu ~/.bashrc (Zeile 29 für mich am 13.04), die Sie auskommentieren können, um dies zu aktivieren (und globstar).

Weitere Informationen zu den verschiedenen Globbing-Optionen der Shell finden Sie unter Gregs Wiki . Beachten Sie, dass dies eine Eigenschaft der Bash-Shell ist und nicht der Befehl ls, sodass Sie ihn mit anderen Befehlen verwenden können.

Alternativ können Sie verwenden

ls --ignore='*.*'

oder

ls -I '*.*'

... das ist eine interne ls Option, aber extglob kann auf jeden beliebigen Befehl angewendet werden & ist meiner Meinung nach nützlicher.

14
evilsoup

Sowohl ls | grep -v \\. als auch ls | grep -v "\." funktionieren.

9
krowe