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.


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 {} \;

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.