Frage:
Warum zeigt ls -a keine Dateien an, die der Finder anzeigt?
stevec
2020-08-17 05:39:27 UTC
view on stackexchange narkive permalink

Wenn Sie zu / usr / local / bin navigieren, wird eine Datei mit dem Namen "R" angezeigt:

enter image description here

Aber wenn cd / usr / local / bin und ls (oder ls -a ), sehen wir eine lange Liste von Dateien.aber keine Datei namens R:

enter image description here

Das hat mich überrascht - anscheinend kann der Finder Dateien sehen, die ls nicht können.Warum zeigt ls -a nicht alle Dateien an, die der Finder ausführt?

Ist das die ganze Liste?Es ist wichtig zu beachten, dass sich die Sortierung im Finder von der Sortierung in Bash / Zsh unterscheidet.Geben Sie den Befehl `ls -ad R *` ein und lassen Sie mich wissen, was Sie bekommen.
@Allan ah.Ich bekomme `R Redirect Rscript`.
Ich werde eine Antwort schreiben ...
Wäre nicht `ls -1 |sort -f` geben Sie die gleichen Ergebnisse wie der Finder?
@fd0 Du hast recht.Ich werde `ls -1 | verwendensort -f` in Zukunft eher als `ls`
Einer antworten:
Allan
2020-08-17 05:55:54 UTC
view on stackexchange narkive permalink

Es ist da, aber Sie sehen es nicht, weil Sie es nicht dort erwarten, weil sich die Sortierung im Finder von der Sortierung in Bash / Zsh unterscheidet.Grundsätzlich führt Finder eine Suche ohne Berücksichtigung der Groß- und Kleinschreibung durch, während Bash zwischen Groß- und Kleinschreibung unterscheidet.Zum Beispiel folgt "a" auf "Z"

Wenn Sie nach einer bestimmten Datei suchen und den Fall kennen, können Sie sie mit ein wenig ls Magie finden ...

  $ ls -Ad R *
 

Wo ...

  • -A = Listet alle Dateien mit Ausnahme von auf. und ..
  • -d = Verzeichnisse als Dateien behandeln und nicht rekursiv durchsuchen
  • R * = Alle Dateien, die mit dem Buchstaben "R"
  • beginnen
Nicht zu sagen, dass dies falsch ist, wie die positiven Stimmen und die Akzeptanz zeigen, aber ich verstehe es einfach nicht.Wenn es nur darum geht, die Liste anders zu sortieren, würden Sie in Bash erwarten, dass die Datei oben in der Liste angezeigt wird.Aber es sieht für mich so aus, als wäre es überhaupt nicht da?
Ich denke, das OP hat gerade einen Teil der Ausgabe gezeigt.
@TomBowen Im OP habe ich die Liste beschnitten, um nur einige Dateien anzuzeigen, da es [`ls -1 | gabwc -l`] (https://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/x700.html) = insgesamt 1047 Dateien.Interessanterweise begannen nur 26 von ihnen entweder mit einer Zahl oder einem Großbuchstaben (weshalb ich einige dieser Dateien verpasst habe, einschließlich "R").
_ "Grundsätzlich führt Finder eine Suche ohne Berücksichtigung der Groß- und Kleinschreibung durch, während Bash zwischen Groß- und Kleinschreibung unterscheidet." _ - Dies hat jedoch nichts mit Bash zu tun.Es ist ls, der entscheidet, seine Ausgabe auf diese Weise zu sortieren (wahrscheinlich als Reaktion auf Gebietsschemaeinstellungen). Die Shell ist für dieses Verhalten irrelevant.
@marcelm Ja, ls verwendet LC_COLLATE, um die Sortierung zu bestimmen, normalerweise unter Verwendung von readdir / scandir + setlocale beim Programmstart.


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 4.0-Lizenz, unter der er vertrieben wird.
Loading...