Nicht sicher ls, aber man kann es leicht tun mit dem fileBefehl: file /directory/containing/the/files -maxdepth 1 -not -type d.
Henning Kockerbeck
1
Ein anderer Weg wäre, die Ausgabe von lsThrough zu filtern grep, so etwas wie ls -1F /directory/containing/the/files | grep -vE /$. Beachten Sie jedoch, dass das Parsen der Ausgabe von ls schwierig sein kann .
Verwenden Sie ls -pTells ls, um einen Schrägstrich an Einträge anzuhängen, die ein Verzeichnis sind, und verwenden Sie grep -v /Tells grep, um nur Zeilen zurückzugeben , die keinen Schrägstrich enthalten.
Ich habe diese Antwort überprüft, weil sie meine Lieblingsantwort ist (während ich alle positiv bewertet habe), aber jetzt habe ich versucht, eine Möglichkeit zu finden, sie in Spalten zu
schreiben
"Sie können 1 Schalter für einspaltige Liste verwenden" Entschuldigung, ich habe versucht herauszufinden, was Sie damit meinten. Ich würde es begrüßen und ein Beispiel / eine Erklärung geben, wenn Sie möchten, ich weiß nur, was ein Schalter in Bezug auf C-Programmierung ist
thinksinbinary
@sdkks Sie benötigen den 1Schalter nicht , wenn Sie die Ausgabe weiterleiten, da in dieser Situation standardmäßig nur eine Spalte verwendet wird. Wenn es das ist, was du meinst.
Thomasrutter
@thinksinbinary nicht sicher, wie man es mehrspaltig macht, aber Sie könnten Ihre eigene Frage suchen oder stellen, und jemand wird es wissen.
Thomasrutter
7
Sie können dies versuchen:
find . -maxdepth 1 -not -type d
Und ordnen Sie dies einem speziellen Alias zu.
Wenn Sie den lsBefehl jedoch unbedingt verwenden möchten, gehen Sie wie folgt vor:
Ich habe in Ihrem (@thinksinbinary) Kommentar zu der Antwort von @thomasrutter gesehen, dass Sie sie in umgekehrter Reihenfolge und in Spalten ausdrucken möchten. Sie haben es wahrscheinlich schon herausgefunden oder sind weitergezogen, aber hier ist es:
ls -pr | grep -v / | column
-p fügt den Verzeichnisnamen den Schrägstrich ('/') hinzu
-r kehrt die Ausgabereihenfolge um
-v lässt grep eine inverse Suche durchführen, um alles außer den Verzeichnissen zu drucken ( alles, wo das '/', das -p enthält, nicht vorhanden ist )
Ich finde es cool, dass die Leute im Ubuntu-Forum noch nach langer Zeit Ihre Beiträge kommentieren und lesen. Ich wollte schon immer wieder in Linux einsteigen, um die Montage und Betriebssysteme zu erlernen, da dies unter Windows sehr viel schwieriger ist. Vielen Dank!
thinksinbinary
0
ls -F | grep -v /
Der obige Befehl zeigt Dateien an. Er enthält jedoch Symlinks, Pipes usw. Wenn Sie diese ebenfalls entfernen möchten, können Sie eines der unten genannten Flags verwenden.
ls -Ffügt den Dateinamen Symbole hinzu. Diese Symbole zeigen nützliche Informationen zu Dateien an.
ls
, aber man kann es leicht tun mit demfile
Befehl:file /directory/containing/the/files -maxdepth 1 -not -type d
.ls
Through zu filterngrep
, so etwas wiels -1F /directory/containing/the/files | grep -vE /$
. Beachten Sie jedoch, dass das Parsen der Ausgabe von ls schwierig sein kann .Antworten:
Verwenden Sie
ls -p
Tellsls
, um einen Schrägstrich an Einträge anzuhängen, die ein Verzeichnis sind, und verwenden Siegrep -v /
Tellsgrep
, um nur Zeilen zurückzugeben , die keinen Schrägstrich enthalten.quelle
1
Schalter nicht , wenn Sie die Ausgabe weiterleiten, da in dieser Situation standardmäßig nur eine Spalte verwendet wird. Wenn es das ist, was du meinst.Sie können dies versuchen:
find . -maxdepth 1 -not -type d
Und ordnen Sie dies einem speziellen Alias zu.
Wenn Sie den
ls
Befehl jedoch unbedingt verwenden möchten, gehen Sie wie folgt vor:ls -p | egrep -v /$
quelle
Alternative:
Diese Methode wird in aufgelistet
-l
Langes Listenformat-A
Zeigt fast alle an (versteckte Dateien anzeigen, aber nicht anzeigen.
und..
)-h
Vom Menschen lesbare Dateigrößenwährend grep
-v
Keine passenden Datensätze anzeigenRegular expression
Filter^d
- Diese beginnen mit dem Buchstaben d (für Verzeichnis) dhdrwxrwxr-x <some file details> <foldername>
Wenn Sie nicht jedes Mal etwas eingeben möchten, können Sie es zu einem Alias für Ihr Bash / Shell-Profil machen.
quelle
Ich habe in Ihrem (@thinksinbinary) Kommentar zu der Antwort von @thomasrutter gesehen, dass Sie sie in umgekehrter Reihenfolge und in Spalten ausdrucken möchten. Sie haben es wahrscheinlich schon herausgefunden oder sind weitergezogen, aber hier ist es:
quelle
Der obige Befehl zeigt Dateien an. Er enthält jedoch Symlinks, Pipes usw. Wenn Sie diese ebenfalls entfernen möchten, können Sie eines der unten genannten Flags verwenden.
ls -F
fügt den Dateinamen Symbole hinzu. Diese Symbole zeigen nützliche Informationen zu Dateien an.@
bedeutet symbolische Verknüpfung (oder dass die Datei erweiterte Attribute hat ).*
bedeutet ausführbar .=
bedeutet Steckdose .|
bedeutet Named Pipe .>
bedeutet Tür ./
bedeutet Verzeichnis .Der obige Befehl zeigt nur Dateien an.
quelle