Saya perlu menghapus semua file secara rekursif di semua subdirs di mana nama file berisi angka diikuti oleh 'x' diikuti oleh angka, setidaknya dua kali.
Contoh:
Saya ingin menghapus file-file ini:
'aaa-12x123-123x12.jpg'
'aaa-12x12-123x12-12x123.jpg'
Tetapi saya TIDAK ingin menghapus file-file ini:
'aaa.jpg'
'aaa-12x12.jpg'
'aaaxaaa-123x123.jpg'
'aaaxaaa-aaaxaaa.jpg'
Bagaimana saya bisa melakukan itu (dari bash shell)
-delete
atau-exec rm
bekerja untuk saya di Bash pada Windows. Tapi ini berhasil:find /path/to/directory -type f -name '*[0-9]x[0-9]*[0-9]x[0-9]*.jpg' | xargs rm
-print0
danxargs -0
, jika tidak, perintah akan gagal dengan nama file yang berisi spasi atau kutipan tunggal. Tapi-delete
dan-exec rm
melakukan pekerjaan pada Windows. Jika sesuatu tidak berfungsi, itu bukan karena penggunaannya.find
, jadi pastikan utilitas Unix masuk terlebih dahuluPATH
.Perintah yang benar adalah:
find . -type f -iregex '.*[0-9]x[0-9]*\.jpg$'
ini hanya akan mengambil file dengan nama: 'aaa-12x12.jpg', tetapi tidak 'aaa-12x12red.jpg'
sumber