Katakanlah saya memiliki 20 file bernama FOOXX, di mana XX adalah jumlah file, misalnya 01, 02 dll.
Saat ini, jika saya ingin menghapus semua file lebih rendah dari angka 10, ini mudah dan saya hanya menggunakan wildcard, misalnya rm FOO0 *
Namun, jika saya ingin menghapus file tertentu dalam kisaran, misalnya 13-15, ini menjadi lebih sulit.
rm FPP [13-15] tidak berfungsi, dan bertanya apakah saya ingin menghapus semua file. Likewse rm FOO1 [3-5] ingin menghapus semua file yang dimulai dengan FOO1
Jadi, apa cara terbaik untuk menghapus rentang file seperti ini?
Saya telah mencoba dengan bash dan zsh, dan saya tidak berpikir mereka sangat berbeda untuk tugas dasar seperti itu?
Jawaban:
Dalam bash Anda dapat menggunakan:
atau
untuk menghapus FOO13, FOO14 dan FOO15.
Penjepit ekspansi Bash didokumentasikan di sini .
sumber
rm FOO{13..15}
.bash
perintah membentuk subset dariz
perintah shell.Untuk pembaca masa depan,
find
perintah ini juga dapat menghapus file. Saya menyelesaikan ini untuk masalah yang sama:tetapi jawaban yang dipilih adalah jawaban paling sederhana untuk pertanyaan ini.
sumber
find . -name "*.o" -delete
dan itu bekerja seperti pesona)ls | grep regex | xargs rm
sumber
find -regex ... -print0 | xargs -0 ...
ini, jika tidak, gagal untuk nama file dengan spasi.find
maka Anda mungkin juga hanya menggunakan-exec
.