Memerintahkan untuk menghapus semua file dan folder secara rekursif termasuk, yang tersembunyi, di Terminal MAC OS?

11

rm -rf * akan menghapus semua file dan folder tetapi bukan yang tersembunyi.

rm -rf .* akan menghapus semua file dan folder tersembunyi, tetapi bukan yang tidak disembunyikan, benar?

Perintah apa yang harus diketik satu, untuk menghapus semua file dan folder termasuk yang tersembunyi? (kecuali. dan ..); ?

MEM
sumber

Jawaban:

13
rm -rf * .*

akan melakukan trik.

pengguna1055604
sumber
1
TIDAK! .*akan meluas ke semua entri yang tidak terlihat di direktori saat ini termasuk .. - yang berarti menggunakan .*sebagai argumen untuk rm -rfakan berusaha menghapus direktori di atas yang sedang Anda masuki, dan semua isinya . Saya akan menolak untuk melakukannya, tetapi saya tidak mempertimbangkan untuk mengandalkan brankas ini ...
Gordon Davisson
@ Gordon Davisson: Saya telah membuat direktori. Saya telah menambahkan file ke dalamnya, termasuk file tersembunyi. Saya sudah membuat perintah itu. Itu telah menghapus semua konten di dalam direktori itu secara rekursif, dan itu belum menghapus konten di atas direktori itu. Bisakah Anda memperjelas komentar Anda?
MEM
Terima kasih atas klarifikasi atas komentar Anda di atas. Sekarang saya mengerti maksud Anda. Ada saran alternatif?
MEM
bagaimana kalau menggunakan finddengan -deletebendera ...
user1055604
1
@GordonDavisson rmharus mencetak rm: "." and ".." may not be removedpesan dalam kasus itu - itu tidak akan secara otomatis menghapus direktori induk.
slhck
1

Coba ini:

find . -mindepth 1 -delete

Saya tidak yakin yang -mindepthdidukung oleh semua implementasi find; jika milik Anda tidak memilikinya, -pathsebaiknya berikan cara lain agar tidak mencoba menghapus .:

find . -path "*/*" -delete
Gordon Davisson
sumber
BSD findmemiliki opsi itu juga, ya.
slhck
1

Cukup gunakan perintah ini untuk membersihkan file / direktori sesuai dengan kriteria spesifik:

# tmpwatch -fauv 0 .
Antoine Nguyen
sumber
0

shopt -s dotglobjuga membuat *termasuk file yang dimulai dengan titik.

Lri
sumber