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?

Lukasz
quelle

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.)

Enzotib
quelle
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
Gilles 'SO - hör auf böse zu sein'
quelle
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)
don_crissti
quelle
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.

neverMind9
quelle