Saya memiliki direktori sistem file ubuntu di direktori root dan saya tidak sengaja menyalin ratusan file ke direktori root.
Saya secara intuitif mencoba menghapus file yang disalin dengan mengecualikan sistem file seperti
rm -rf !{bin,sbin,usr,opt,lib,var,etc,srv,libx32,lib64,run,boot,proc,sys,dev} ./.
tapi itu tidak berhasil. Apa cara yang tepat untuk mengecualikan beberapa direktori sambil menghapus keseluruhannya?
SUNTING: Jangan pernah coba perintah apa pun di sini tanpa tahu harus berbuat apa!
mc
. Pilih segala sesuatu dengan*
, lalu hapus pilihan file-
atau denganInsert
kunci tertentu./bin/bash
mc
adalah Midnight Commander, tiruan Norton Commander yang sangat berguna. Ini berjalan di terminal. (Baik Midnight Commander dan Norton Commander adalah contoh dari apa yang disebut file manager ortodoks .)Jawaban:
Karena Anda menggunakan
bash
:Saya sarankan untuk menambahkan
echo
di awal baris perintah ketika Anda menjalankan sesuatu yang berpotensi meledakkan seluruh sistem. Hapus jika Anda senang dengan hasilnya.Catatan: Perintah di atas tidak akan menghapus file tersembunyi (yang namanya dimulai dengan titik). Jika Anda ingin menghapusnya juga, aktifkan juga
dotglob
opsi:sumber
rm -rf ./!(bin,sbin,..)
koma terpisah, tetapi menghapus semua direktori.!(...)
sintaks? Dari contoh yang saya pikir secara intuitifls ./!(*/)
akan daftar file saja, tetapi tidak berfungsi seperti itu.*
atau gumpalan lainnya.Perintah ini akan menampilkan semua non-direktori di
/
:Setelah Anda benar-benar memastikan tidak ada file yang ingin Anda simpan, Anda dapat menggunakan:
Lebih aman, akan memindahkannya ke tempat lain untuk memastikan Anda tidak menghapus sesuatu yang ingin Anda pertahankan:
Jika, selain file, Anda juga memiliki direktori yang telah Anda tambahkan ke root sistem file, ini bisa otomatis dengan mengecualikan direktori LSB dari otomatis
mv
ataurm
, tapi jujur, karena kita sedang berurusan dengan membersihkan hal-hal di root dari filesystem, saya akan sangat menyarankan Anda mempertimbangkan untuk melakukannya secara manual jika memungkinkan.Jika ini tidak layak, sesuatu seperti ini dapat melakukan trik:
Setelah Anda lulus tes menjerit (yaitu sistem Anda masih berjalan dan Anda tidak menjerit kesedihan), Anda dapat menghapus konten
/root/preserve/
.Catatan penting: Apa pun yang Anda lakukan, jangan pernah berpikir untuk menjalankan permutasi
rm -fr [ANYTHING GOES HERE] /
.sumber
rm
. Seperti skrip denganrm -fr $somepath/
dengansomepath
tidak diinisialisasi di dalamnya. Saya bisa lebih jauh dalam mengungkapkan betapa seriusnya hal ini, tetapi memilih untuk tetap ramah keluarga dalam peringatan saya.Ini harus menyelesaikan pekerjaan (meskipun tidak dengan cara yang sama seperti yang diminta OP):
hapus semua file / direktori yang ingin Anda simpan
Jika semua file Anda memiliki format nama, tanggal, atau hal lain yang sama, maka ada metode lain.
Saya akan melihat inode - dan melihat apakah mereka berurutan melalui ls-i | sort dan jika ya, maka file baru akan memiliki inode yang lebih besar. Kemudian menggunakan jenis proses yang sama seperti di atas ...
dalam perintah cut di atas, periksa daftar inode Anda terlebih dahulu untuk memastikan itu jumlah yang tepat.
sumber