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.