Yang paling dekat yang saya dapatkan adalah
# rm /path/to/directory/*.*
tapi itu tidak berfungsi untuk file yang tidak memiliki ekstensi...
Yang paling dekat yang saya dapatkan adalah
# rm /path/to/directory/*.*
tapi itu tidak berfungsi untuk file yang tidak memiliki ekstensi...
Linux tidak menggunakan ekstensi. Terserah pembuat file untuk memutuskan apakah nama tersebut harus memiliki ekstensi. Linux melihat beberapa byte pertama untuk mencari tahu jenis file apa yang sedang ditangani.
Untuk menghapus semua berkas yang tidak tersembunyi* dalam Penggunaan Direktori:
rm /path/to/directory/*
Namun, ini akan menunjukkan kesalahan untuk setiap sub-direktori, karena dalam mode ini hanya diperbolehkan untuk menghapus file.
Untuk menghapus semua file non-tersembunyi dan sub-direktori (bersama dengan semua isinya) dalam Penggunaan Direktori:
rm -r /path/to/directory/*
* File dan direktori tersembunyi adalah mereka yang namanya dimulai dengan .
(dot) karakter, misalnya.: .hidden-file
atau .hidden-directory/
. Perhatikan bahwa, di Bash, jika dotglob
opsi (yang tidak aktif secara default) diatur, rm
akan bertindak pada file tersembunyi juga, karena mereka akan dimasukkan ketika *
diperluas oleh shell untuk menyediakan daftar argumen nama file.
Untuk menghapus folder dengan semua isinya (termasuk semua folder interior):
rm -rf /path/to/directory
Untuk menghapus semua isi folder (termasuk semua folder interior) tetapi bukan folder itu sendiri:
rm -rf /path/to/directory/*
atau, jika Anda ingin memastikan bahwa file/direktori tersembunyi juga dihapus:
rm -rf /path/to/directory/{*,.*}
Untuk menghapus semua & quot;File & quot; dari dalam folder(tidak menghapus folder interior):
rm -f /path/to/directory/{*,.*}
Peringatan: jika Anda memiliki spasi di jalur Anda, pastikan untuk selalu menggunakan tanda kutip.
rm -rf /path/to the/directory/*
setara dengan 2 terpisah rm -rf
panggilan:
rm -rf /path/torm -rf the/directory/*
Untuk menghindari masalah ini, Anda dapat menggunakan '
kutipan tunggal'
(mencegah semua ekspansi, bahkan variabel shell) atau "
kutipan ganda"
(memungkinkan perluasan variabel shell, tetapi mencegah ekspansi lainnya):
rm -rf "/path/to the/directory/"*
Dimana:
rm
- Singkatan Hapus
-f
- Singkatan Angkatan yang sangat membantu ketika Anda tidak ingin ditanya/diminta jika Anda ingin menghapus arsip, misalnya.-r
- Singkatan rekursif yang berarti Anda ingin pergi secara rekursif ke setiap folder dan menghapus semuanya.Untuk menghapus semua file dalam direktori (termasuk file tersembunyi dan subdirektori) jalankan:
rm -rf /path/to/directory/{*,.*}
Untuk menghapus semua file dan direktori (termasuk tersembunyi ones) dalam direktori, Anda dapat mencoba yang berikut ini:
hapus folder, lalu buat ulang
rm -rf dir_name && mkdir dir_name
gunakan find
find dir_name -mindepth 1 -delete
Di sini kita tentukan -mindepth 1
untuk mengecualikan direktori dir_name itu sendiri.
Lihatlah tautan berikut:
https://unix.stackexchange.com/questions/12593/how-to-remove-all-the-files-in-a-directory
Jika Anda ingin menghapus hanya file di/path/to / direktori yang dapat Anda lakukan
find /path/to/directory -type f -print0| xargs -0 rm
atau
find /path/to/directory -type f -exec rm '{}' \;
Anda dapat melakukan banyak hal dengan find
, keuntungannya adalah Anda dapat membuat daftar apa yang ditemukan tanpa menyalurkannya rm
jadi Anda dapat melihat apa yang akan dihapus sebelum Anda mulai.
Jika Anda juga ingin menghapus semua subdirektori dan direktori itu sendiri, Anda dapat menggunakan rm -rf /path/to/directory
. Tapi selalu periksa baris Anda sebelum menekan kembali, rm -rf
dapat menyebabkan banyak havock juga, misalnya jika Anda secara tidak sengaja memasukkan spasi setelah garis miring pertama saat memiliki izin pengguna super...
Karena pertanyaan ini terus-menerus di bagian atas Google ketika saya mencari ini sendiri:
Jawaban lainnya menderita masalah yang berbeda:
Beberapa dari mereka termasuk .
dan ..
yang berisik, membingungkan, dan menjengkelkan.
Beberapa dari mereka lupa file tersembunyi (file yang dimulai dengan titik).
Mereka tidak menghapus dalam urutan yang benar (terdalam-pertama) untuk memungkinkan penghapusan direktori.
Mereka turun ke sistem file lain (terpasang), yang seringkali tidak diinginkan.
Mereka sulit untuk diperluas dengan benar dengan parameter tambahan (lebih lanjut tentang itu di bawah).
find "${DIR}" -xdev -mindepth 1 -printf "%d\t%y\t%p\0" | sort -z -r -n | cut -z -f3- | xargs -0 -r -- rm -d --
Perhatikan bahwa saya menambahkan -xdev
argumen untuk mencegah turun ke gunung (seperti /proc
dll.).
-depth
atau -delete
?Meskipun orang-orang terus-menerus meremehkan saya untuk ini, metode-metode itu memiliki kelemahan: sepertinya tidak cukup dapat diperluas untuk memungkinkan -prune
ing subdirektori (tanpa memperkenalkan lebih banyak masalah). Berbeda dengan metode ini, Anda bisa memasukkan
-not \( -path "${DIR}/subdir" -prune \)
sebelum -mindepth
argumen untuk mengecualikan subdir
dari memiliki isinya dihapus.
Anda dapat cd
ke direktori dan kemudian jalankan perintah rm *.*
sama seperti di DOS jika Anda ingat.
Untuk menghapus direktori saat ini, Anda bisa misalnya menggunakan rm -d ./*
- d memberitahu untuk menghapus direktori juga.
Lihat jawabannya di sini, ini dapat menghapus file tersembunyi juga tanpa peringatan dan menghapus direktori itu sendiri ubuntu - Delete contents but not directory in Linux? - Stack Overflow
Saya tidak memiliki reputasi yang cukup untuk menambahkan jawaban nyata, tetapi ketika menggunakan solusi shopt-s dotglob && rm /path/to/directory/*
di bash, (shopt-s dotglob && rm /path/to/directory/*)
(dengan tanda kurung) akan mencegah shopt-s dotglob
bocor di luar perintah yang satu ini. (Kurung menjalankan perintah yang terkandung dalam subkulit.)