Es ist alles, was kein Symlink ist


12

Gibt lses eine Möglichkeit, negierte Bedingungen wie "Alle Dateien, die kein Symlink sind" anzuzeigen? Ich verwende letzteres häufig in einem Projektverzeichnis, aber auch andere Negationen wären nützlich.

Im Moment hat meine Forschung nur dazu geführt, einen Alias ​​für etwas "wie" zu erstellen:

find . -maxdepth 1 ! -type l | sort # (...)

aber offensichtlich bekomme ich auf diese Weise nicht die Färbung ls, die Spaltenformatierung, etc ...

Ich bin manchmal auf Bash v3 unter OS X 10.8.2 und Bash v4 unter Pangolin.

Antworten:


14

sortVerwenden Sie stattdessen ls.

find . -maxdepth 1 \! -type l -exec ls -d {} +

find . -maxdepth 1 \! -type l | xargs ls -d

Wenn Sie die zsh-Shell verwenden, können Sie die nicht portierbaren glob-Erweiterungen verwenden:

ls -d *(^@)

Thx 4 die Antwort! Warum fliehst du? Es scheint auch ohne zu funktionieren. Was riskiere ich, wenn ich nicht entkomme? Interessant, wie du ein Finale verwendest +und nicht \;, bitte erläutern?
Robottinosino

2
@Robottinosino Mit dem Befehl wird +alles an einen einzelnen lsBefehl gesendet, anstatt es für jede Datei separat auszuführen (auf diese Weise können die Spalten und das Sortieren durchgeführt werden). Ich bin dem entkommen! weil es ein besonderer Charakter für einige Muscheln ist, obwohl deine es gut zu akzeptieren scheinen.
Random832

Erwischt. Tolles Zeug! Stimmen Sie zu, dass es ein bisschen mühsam ist, ein Prädikat in einem einfachen zu negieren ls? Könnte es einen besseren Weg geben?
Robottinosino

1
@Robottinosino Mit etwas bearbeitet, was zsh kann. Ich glaube nicht, dass bash das kann.
Random832
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.