Bagaimana cara mendaftarkan semua file dan direktori tersembunyi secara rekursif?


13

Saya ingin mendaftar semua file dan direktori tersembunyi dan kemudian menyimpan hasilnya ke file.

Apakah ada perintah untuk ini?

Jawaban:


13

Jika menggunakan GNU find, Anda bisa melakukannya

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

Edit

Untuk menghindari menampilkan item yang tidak tersembunyi yang terkandung dalam direktori tersembunyi

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

(seperti yang disebutkan, teedapat dihindari jika Anda tidak perlu melihat output, dan -lsopsi harus digunakan hanya jika diperlukan).


2
Atau dengan >alih - alih | tee, jika seseorang tidak ingin melihat seluruh output pada terminal.
rozcietrzewiacz

Anda juga tidak perlu -lsmelakukan ini, itu mungkin informasi tambahan yang berantakan untuk dipikirkan.
Caleb

Ini juga mencantumkan isi direktori tersembunyi, yang bukan pertanyaannya (mungkin - ini agak ambigu).
Gilles 'SANGAT berhenti menjadi jahat'

@Gilles: memang ambigu. Diedit jawabannya
enzotib

Perhatikan bahwa yang pertama tidak spesifik untuk GNU. -pathPOSIX sejak 2008. -lstidak standar tetapi cukup umum.
Stéphane Chazelas

10

Untuk membuat daftar file dan direktori tersembunyi di direktori saat ini, termasuk .dan ..:

echo .*

Untuk membuat daftar file dan direktori tersembunyi di direktori saat ini dan subdirektori secara rekursif:

find . -name '.*'

Jika Anda ingin menyimpan hasil ke file, gunakan pengalihan:

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

1

Dengan zsh(menggunakan kualifikasi glob D ):

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

Untuk memasukkan file yang tidak disembunyikan dalam direktori tersembunyi:

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

0

Anda benar-benar dapat menempatkan argumen yang sama beberapa kali di baris perintah yang sama:

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

The tee -aPerintah mampu menampilkan perintah keluaran (atau stdout ) secara bersamaan whie menulis ke file. The -aPilihan mencegah clobbering dan tidak menambahkan informasi ke file target output sebagai gantinya.

/storage/????-????/adalah contoh jalur. Ini adalah jalur ke kartu MicroSD dari ponsel Android yang lebih baru (ada juga aplikasi terminal untuk Android, dengan perintah lebih sedikit tetapi masih banyak dan meningkat secara signifikan sejak Android 6.0). Kartu MicroSD sebelumnya /storage/extSdCard. Sekarang, ini adalah nomor seri volume.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.