Jak rekursywnie wyświetlać wszystkie ukryte pliki i katalogi?

13

Chcę wyświetlić listę wszystkich ukrytych plików i katalogów, a następnie zapisać wynik w pliku.

Czy jest na to jakieś polecenie?

Łukasz
źródło

Odpowiedzi:

13

Jeśli używasz GNU find, możesz to zrobić

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

Edytować

Aby uniknąć pokazywania nie ukrytych przedmiotów zawartych w ukrytych katalogach

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

(jak wspomniano, teemożna tego uniknąć, jeśli nie trzeba widzieć danych wyjściowych, a -lsopcji należy używać tylko w razie potrzeby).

enzotib
źródło
2
Lub z >zamiast | tee, jeśli nie chce się widzieć całego wyjścia na terminalu.
rozcietrzewiacz
Nie potrzebujesz również -lstego, mogą to być nieporządne informacje do przeanalizowania.
Caleb,
Zawiera również zawartość ukrytych katalogów, czego nie pyta pytanie (prawdopodobnie - jest to trochę dwuznaczne).
Gilles 'SO - przestań być zły'
@Gilles: rzeczywiście jest to niejednoznaczne.
Edytowałem
Zauważ, że pierwszy nie jest specyficzny dla GNU. -pathjest POSIX od 2008 roku. -lsnie jest standardem, ale dość powszechnym.
Stéphane Chazelas,
10

Aby wyświetlić listę ukrytych plików i katalogów w bieżącym katalogu, w tym .i ..:

echo .*

Aby wyświetlić listę ukrytych plików i katalogów w bieżącym katalogu i jego podkatalogach rekurencyjnie:

find . -name '.*'

Jeśli chcesz zapisać wyniki w pliku, użyj przekierowania:

find . -name '.*' >output-file.txt
Gilles „SO- przestań być zły”
źródło
1

Za zshpomocą (używając kwalifikatora glob D ):

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

Aby dołączyć nie ukryte pliki do ukrytych katalogów:

setopt extendedglob
print -rl ./**/*~^*/.*(D)
don_crissti
źródło
0

W rzeczywistości możesz umieścić ten sam argument wiele razy w tym samym wierszu poleceń:

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

tee -aKomenda jest w stanie wyświetlić danego polecenia wyjściowego (lub stdout ) jednocześnie whie pisanie do pliku. W -aopcji zapobiega przebijania i ma dołączyć informacje do pliku wyjściowego docelowej zamiast.

/storage/????-????/to przykładowa ścieżka. Jest to ścieżka do karty MicroSD nowszych telefonów z systemem Android (istnieje również aplikacja terminalowa na Androida, z mniejszą liczbą poleceń, ale wciąż wiele i znacznie zwiększona od Androida 6.0). Karta MicroSD była wcześniej /storage/extSdCard. Teraz jest to numer seryjny woluminu.

neverMind9
źródło