Saya membayangkan ini bisa dilakukan sebagai 1-liner tetapi tampaknya agak rumit jadi saya membuat skrip untuk kemudahan peluncuran dan pengeditan dan menyebutnya findvids.sh
Ini yang berhasil bagi saya.
Catatan: Saya mungkin belum mencakup SEMUA jenis file video, tetapi saya yakin saya memiliki sebagian besar dari mereka. Satu pengecualian penting adalah .mkv karena itu adalah format target untuk proyek dan saya tidak perlu menemukan file yang sudah diproses. Seharusnya sangat sederhana untuk menambahkan format tambahan (ekstensi) ke skrip untuk memenuhi kebutuhan Anda dengan memeriksa polanya dan menyesuaikannya dengan tetap mempertahankan tanda kutip di awal dan akhir ekspresi. Perhatikan bahwa file yang tidak Anda miliki izin untuk membaca tidak akan ditemukan.
#!/bin/bash
#This script is intended to find virtually all video file formats.
find /. -type f | grep -E "\.webm$|\.flv$|\.vob$|\.ogg$|\.ogv$|\.drc$|\.gifv$|\.mng$|\.avi$|\.mov$|\.qt$|\.wmv$|\.yuv$|\.rm$|\.rmvb$|/.asf$|\.amv$|\.mp4$|\.m4v$|\.mp*$|\.m?v$|\.svi$|\.3gp$|\.flv$|\.f4v$"
Sunting berdasarkan komentar: Di $
akhir ekstensi menandakan bahwa istilah pencarian harus ditemukan di akhir baris. jika kami ingin mencocokkan awal baris, kami akan menggunakan ^
sebelum istilah yang ingin kami cocokkan. Anda dapat menemukan jangkar ini dijelaskan lebih terinci di sini.
Saya melakukan perbandingan kecepatan untuk menggunakan loc dan hasilnya adalah:
time locate *.mkv *.webm *.flv *.vob *.ogg *.ogv *.drc *gifv *.mng *.avi *.mov *.qt *.wmv *.yuv *.rm *.rmvb *.asf *.amv *.mp4$ *.m4v *.mp *.m?v *.svi *.3gp *.flv *.f4v
real 0m8.887s
user 0m5.814s
sys 0m0.052s
vs.
time find /. -type f | grep -E "\.webm$|\.flv$|\.vob$|\.ogg$|\.ogv$|\.drc$|\.gifv$|\.mng$|\.avi$|\.mov$|\.qt$|\.wmv$|\.yuv$|\.rm$|\.rmvb$|/.asf$|\.amv$|\.mp4$|\.m4v$|\.mp4$|\.m?v$|\.svi$|\.3gp$|\.flv$|\.f4v$"
real 0m2.795s
user 0m0.657s
sys 0m1.115s
Menemukan tanpa terduga lebih cepat. Saya akan menggunakan pendekatan ini.
Sunting: pengujian lebih lanjut menunjukkan bahwa lokasi lebih cepat pada mesin yang berbeda. Saya pikir hasil tes kecepatan awal saya adalah susun karena caching.
Sumber:
man find
man grep
/programming/7190565/unix-find-multiple-file-types