Bagaimana menghapus isi direktori di Centos


9

Saya perlu menghapus semua konten folder dalam CentOS tetapi tidak pada folder itu sendiri.

Misalnya: Saya memiliki folder bernama "MYFOLDER" yang berisi subfolder FOLD_1, FOLD_2, FOLD_3, FOLD_4 ... dll, dan beberapa file. Saya perlu menghapus semua folder dan file ini tetapi tidak pada folder container MYFOLDER. Saya perlu direktori ini untuk mengarahkan hasil dari proses sebelumnya.

Saya mencoba dengan rm -rf perintah, tetapi ini juga menghapus folder penampung.

Jawaban:


11

Hapus isi folder sebagai gantinya.

rm -r MYFOLDER/*

1
Perhatikan bahwa ini tidak menyembunyikan file / direktori dalam MYFOLDER
tylerl

1
@tylerl: Tidak jika Anda mengatur shopt -s dotglobterlebih dahulu.
jgoldschrafe

Ini mengharuskan Anda untuk menyetujui secara manual turun ke setiap subdirektori, yang merupakan buang-buang waktu. Perintah yang benar akan menangani semua itu secara otomatis sehingga Anda tidak terjebak dengan 50 prompt.
CodeMed

rm -R /path/to/myfolder/*adalah sintaks yang benar untuk menghindari permintaan berlebihan untuk menyetujui penghapusan setiap file dan subfolder. Catat modalnya R.
CodeMed

5

Kamu bisa menggunakan:

rm -r MYFOLDER/{.[^.],.??*}

Ini juga menghapus file dan folder tersembunyi. Jika Anda memiliki terlalu banyak file di direktori MYFOLDER, Anda harus menjalankannya sebagai gantinya:

ls MYFOLDER/{.[^.],.??*}|xargs rm -r

Saya memiliki lebih dari 500 ribu file di dalam meta/direktori saya , jadi saya ingin mencoba alternatif xargs, namun saya mendapatkan pesan-pesan kesalahan ini: ls: cannot access meta/.[^.]: No such file or directory ls: cannot access meta/.??*: No such file or directory rm: missing operand
Andres SK

1
Pastikan Anda menggunakan bashshell. Shell harus mendukung "Ekspansi Brace" dan "Ekspresi Reguler" untuk pola file.
Mircea Vutcovici

3

Cara termudah, menurut saya, adalah menghapus seluruh direktori, termasuk dirinya sendiri, dan kemudian membuat ulang folder. Ada situasi ketika ini bukan solusi yang baik (skrip tanpa pengawasan atau saluran pipa yang lebih rumit), tetapi Anda tidak menentukan mengapa Anda tidak ingin menghapus folder.

rm -rf foldername
mkdir foldername

Ups. Anda memang menentukan (saya membaca ulang posting Anda). Yah, tetap saja, menghapus dan menciptakan kembali bisa berhasil. Terutama jika Anda rantai perintah bersama, seperti

rm -rf foldername && mkdir foldername

Atau

rm -rf foldername; mkdir foldername

Terkadang Anda tidak memiliki izin di folder induk atau Anda ingin mempertahankan atribut tertentu yang tidak Anda sadari. Misalnya Anda tidak dapat menghapus folder rumah Anda sebagai pengguna non root, tetapi Anda dapat menghapus apa pun di bawahnya.
Mircea Vutcovici

Ini harus menjadi jawaban yang diterima. +1
CodeMed



0

Saya sangat merekomendasikan alternatif ini (ini juga menghapus file dengan spasi dalam nama):

find MYFOLDER/ -type f -print0 | xargs -0 rm -f
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.