Saya dalam folder: /var/myfolder
.
Di dalamnya ada beberapa folder lain seperti: /var/myfolder/A/
/var/myfolder/B/
`/var/myfolder/C/
dll.
Di dalam masing-masing ada beberapa file dengan nama acak. Bagaimana cara menghapus semua file dari semua folder di dalamnya /var/myfolder
?
Struktur (semua direktori, mis., A, B, C dll, di dalam /var/myfolder
) harus tetap utuh.
-type f
! =! -type d
Dengan zsh, gunakan
.
kualifikasi glob untuk mencocokkan hanya file biasa:Ini menghapus semua file biasa (tidak tersembunyi) di direktori saat ini dan subdirektori secara rekursif. Tambahkan
D
kualifikasi glob untuk menghapus file biasa yang tersembunyi (dan file biasa di direktori tersembunyi) juga.sumber
Anda bisa
rm */*
masuk/var/myfolder
sumber
rm
tidak menghapus direktori - jadi jalankan saja di semuanya.Untuk menyimpan symlink ke direktori:
Dan saya pikir ini juga bisa berfungsi, mungkin, cara yang sedikit dioptimalkan jika ada banyak file yang mungkin perlu diuji dalam versi di atas:
sumber
find
memiliki-xtype
opsi untuk itu.sumber
Akan menghapus semua yang ada di dalam sub folder tanpa menyentuh sub folder itu sendiri.
Yang pertama
*
adalah untuk subdirektori darimyfolder
itu sendiri (A
,B
, ...). Yang kedua*
adalah untuk file dalamA
,B
dllJIKA ada lebih folder di dalam
A
,B
, dll Pertama jalankan:rm /var/myfolder/*/*/*
kemudian jalankanrm /var/myfolder/*/*
.sumber
Anda juga harus dapat melakukan cd ke bagian atas pohon direktori yang dimaksud, kemudian jalankan:
dan itu akan menghapus semua file sambil membiarkan pohon direktori tetap utuh. Opsi -print0 dan -0 dapat dihilangkan jika Anda yakin Anda tidak memiliki nama file atau direktori yang mengandung spasi.
Perintah find membedakan antara file (-type f) dan tautan (-type l) jadi ini akan membuat tautan tetap utuh, jika ada. Tidak diuji. Jika ragu, jalankan:
dan lihat apakah ada yang muncul sebelum Anda menjalankan perintah find sebelumnya.
sumber
rm
benderanya-r, -R, --recursive - remove directories and their contents recursively
cocok dengan ini?Cukup gunakan perintah di bawah ini:
---------------- ATAU --------------------------------- -----------------------
'*' Adalah kependekan dari semua sehingga ketika Anda akan menggunakan * yang akan menghapus semua konten. jadi gunakan perintah seperti ini atau buka direktori tempat Anda ingin menghapus semua konten dan cukup gunakan perintah di bawah ini:
sumber