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?

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


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

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)

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.