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.

susu formula
sumber

Jawaban:

11

Hapus isi folder sebagai gantinya.

rm -r MYFOLDER/*
Ignacio Vazquez-Abrams
sumber
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
Mircea Vutcovici
sumber
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
JDS
sumber
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

Bagaimana tentang

cd MYFOLDER
find . | rm -rf

Ini juga menghapus file yang tersembunyi (yang dimulai dengan titik).

Janne Pikkarainen
sumber
1
Ini juga akan menghapus MYFOLDER.
Mircea Vutcovici
0

Cobalah rm -r -f filenamebekerja dengan CentOS 6.x

Shiv Singh
sumber
0

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

find MYFOLDER/ -type f -print0 | xargs -0 rm -f
Andres SK
sumber