cara menemukan dan menghapus banyak file di bash / linux

0

Saya memiliki direktori dengan sub direktori yang berisi .srtfile. Saya perlu membaca direktori dan menghapus semuanya. Saya tahu cara menemukan mereka seperti ini:

find ./directory -name *.srt

tapi saya tidak yakin bagaimana menyalurkannya rm.

Widgeteye
sumber
Pertama-tama Anda harus mengutip *.srtuntuk menghindari globbing shell. Tanpa tanda kutip itu akan berfungsi seperti yang Anda harapkan hanya ketika tidak ada *.srtfile di direktori saat ini.
Kamil Maciorowski

Jawaban:

1

Sintaksnya sedikit rumit:

find ./directory -name "* .srt" -exec rm {} \;
pkk
sumber
1
itu akan lebih baik untuk menggunakan -delete
djsmiley2k
1
-exec rm {} \;memunculkan rmuntuk setiap file. -exec rm {} +menghapus banyak file sekaligus; -deleteadalah yang terbaik karena itu tidak menciptakan proses baru, saya percaya.
Kamil Maciorowski
1
@ djsmiley2k meskipun -deletetidak sepenuhnya portabel, meskipun BSD dan GNU keduanya mendukungnya. Meskipun demikian, ini tidak ditentukan dalam POSIX, tetapi jika Anda sudah mendapatkannya, itulah jalannya
Eric Renouf
Inilah yang saya gunakan dan itu bekerja dengan baik. Terima kasih untuk semua yang menjawab dan berkomentar: find TV_Recordings/ -name "*.srt" -delete
Widgeteye