Как найти все видеофайлы в моей системе?

Я попытался использовать поиск файлов объектива Unity для *.* и фильтрации по Last Modified = All, Type = Videos и Size = All, но ничего не нашел, хотя я знаю, что в папке «Мои рисунки» есть некоторые .3gp-файлы. Я знаю, что у меня есть множество видеофайлов на другом диске, установленном в файловой системе. Я скомпилировал список вероятных расширений, и я пробовал множество итераций команды find, используя их с find ./ -name «* .ext» -o (и т. Д. И т. Д. Ad nauseum) без всякой удачи. Каково решение?

1
задан 5 May 2017 в 19:40

1 ответ

Я предполагаю, что это можно сделать как 1-лайнер, но это показалось немного громоздким, поэтому я создал скрипт для простоты запуска и редактирования и назвал его findvids.sh. Это то, что сработало для меня.

[d1 ] Примечание. Возможно, я не охватил ВСЕ типы видеофайлов, но я уверен, что у меня есть большинство из них. Одним из примечательных исключений является .mkv, так как это целевой формат для проекта, и мне не нужно находить файлы, которые уже были обработаны. Очень просто добавить в сценарий дополнительные форматы (расширения) в соответствии с вашими потребностями, изучив шаблон и соответствующим образом отрегулировав его, сохраняя кавычки в начале и конце выражения. Обратите внимание, что файлы, которые у вас нет для чтения, не будут найдены.

#!/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$"

Я сделал сравнение скорости с использованием локации, и результаты были:

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

Неожиданно найти быстрее. Я буду использовать этот подход.

Источники:

man find

man grep

https: // stackoverflow. ком / вопросы / 7190565 / Unix-найти-многооконные тип файлов

3
ответ дан 23 May 2018 в 04:35
  • 1
    touch hello.mp4 не создает видеофайл & gt;: - D, и вы можете изменить его на locate, чтобы ускорить его. – Rinzwind 2 November 2016 в 19:36
  • 2
    @Rinzwind Действительная точка в отношении touch Однако, поскольку это не было сделано в этой системе, в этом случае это не имеет особого значения. Что касается определения местоположения, я должен был запустить updatedb до того, чтобы иметь текущие данные? – Elder Geek 2 November 2016 в 19:40
  • 3
    Да, updatedb делается каждый день, поэтому, если вы можете предположить, что вам не нужно прослужить несколько часов (скорость, которую он возвращает, на величину выше, чем при поиске: D) – Rinzwind 2 November 2016 в 19:42
  • 4
    @Rinzwind Мне бы хотелось увидеть рабочий пример этого использования locate. – Elder Geek 2 November 2016 в 20:18
  • 5
    добавлен местонахождение. – Rinzwind 2 November 2016 в 22:16

Другие вопросы по тегам:

Похожие вопросы: