Saya memiliki direktori dengan sub direktori yang berisi .srt
file. 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
.
*.srt
untuk menghindari globbing shell. Tanpa tanda kutip itu akan berfungsi seperti yang Anda harapkan hanya ketika tidak ada*.srt
file di direktori saat ini.Jawaban:
Sintaksnya sedikit rumit:
sumber
-exec rm {} \;
memunculkanrm
untuk setiap file.-exec rm {} +
menghapus banyak file sekaligus;-delete
adalah yang terbaik karena itu tidak menciptakan proses baru, saya percaya.-delete
tidak sepenuhnya portabel, meskipun BSD dan GNU keduanya mendukungnya. Meskipun demikian, ini tidak ditentukan dalam POSIX, tetapi jika Anda sudah mendapatkannya, itulah jalannyafind TV_Recordings/ -name "*.srt" -delete