Wie liste ich alle versteckten Dateien und Verzeichnisse rekursiv auf?


13

Ich möchte alle versteckten Dateien und Verzeichnisse auflisten und das Ergebnis in einer Datei speichern.

Gibt es einen Befehl dafür?

Antworten:


13

Wenn Sie GNU find verwenden, können Sie dies tun

find /path -path '*/.*' -ls | tee output-file

Bearbeiten

Um zu vermeiden, dass nicht ausgeblendete Elemente in ausgeblendeten Verzeichnissen angezeigt werden

find /path -name '.*' >output-file

(Wie bereits erwähnt, teekann dies vermieden werden, wenn die Ausgabe nicht -lsangezeigt werden muss. Die Option sollte nur bei Bedarf verwendet werden.)


2
Oder mit >statt | tee, wenn man nicht die gesamte Ausgabe auf dem Terminal sehen will.
Rozcietrzewiacz

Sie brauchen auch keine -lszusätzlichen Informationen, um die Gedanken zu analysieren.
Caleb

Dies listet auch den Inhalt versteckter Verzeichnisse auf, was in der Frage nicht gefordert wird (wahrscheinlich - es ist ein wenig mehrdeutig).
Gilles 'SO - hör auf böse zu sein'

@ Gilles: in der Tat ist es mehrdeutig. Bearbeitet die Antwort
Enzotib

Beachten Sie, dass der erste nicht GNU-spezifisch ist. -pathist POSIX seit 2008. -lsist nicht Standard, aber durchaus üblich.
Stéphane Chazelas

10

So listen Sie die versteckten Dateien und Verzeichnisse im aktuellen Verzeichnis auf, einschließlich .und ..:

echo .*

So listen Sie die versteckten Dateien und Verzeichnisse im aktuellen Verzeichnis und seinen Unterverzeichnissen rekursiv auf:

find . -name '.*'

Wenn Sie die Ergebnisse in einer Datei speichern möchten, verwenden Sie eine Umleitung:

find . -name '.*' >output-file.txt

1

Mit zsh(unter Verwendung des Glob-Qualifiers D ):

print -rl ./**/.*(D)

So fügen Sie nicht ausgeblendete Dateien in ausgeblendete Verzeichnisse ein:

setopt extendedglob
print -rl ./**/*~^*/.*(D)

0

Sie können dasselbe Argument tatsächlich mehrmals in dieselbe Befehlszeile eingeben:

find /storage/????-????/ -iname '.*' -iname "*" | tee -a file-list-micSD-20190801163729.fli

Der tee -aBefehl kann die Ausgabe (oder stdout ) des Befehls gleichzeitig anzeigen, wenn er in eine Datei geschrieben wird. Die -aOptionen verhindern Clobbering und hängen die Informationen stattdessen an die Zielausgabedatei an.

/storage/????-????/ist ein Beispielpfad. Es ist der Weg zur MicroSD-Karte neuerer Android-Handys (es gibt auch eine Terminal-Anwendung für Android, mit weniger Befehlen, aber immer noch vielen und seit Android 6.0 deutlich gestiegen). Die MicroSD-Karte war früher /storage/extSdCard. Jetzt ist es die Seriennummer des Volumes.

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.