Comment trouver tous les fichiers vidéo sur mon système?

J’ai essayé d’utiliser Unity Lens File pour rechercher *.* Et filtrer par Last Modified = All, Type = Videos et Size = All mais je n’ai rien trouvé bien que je sache qu’il existe des fichiers .3gp dans mon dossier Images. Je sais que j’ai également de nombreux fichiers vidéo sur un autre lecteur monté sur le système de fichiers. J’ai compilé une liste d’extensions probables et j’ai essayé de nombreuses itérations de la commande find utilisant avec find ./ -name “* .ext” -o (etc, etc., ad nauseum) sans aucune chance. Quelle est la solution?

Alternative: recherche dans le fichier :

 sudo find . -type f -exec file -N -i -- {} + | grep video 

ou si vous voulez seulement les noms de fichiers …

 sudo find . -type f -exec file -N -i -- {} + | sed -n 's!: video/[^:]*$!!p' 

-N, --no-pad : Ne pas tamponner les noms de fichiers

-i, --mime : -i, --mime la commande file à générer des chaînes de type mime plutôt que des chaînes plus traditionnelles lisibles par l’homme. Ainsi, il peut dire ‘text / plain; charset = us-ascii ‘plutôt que’ texte ASCII ‘. Pour que cette option fonctionne, le fichier change la façon dont il traite les fichiers reconnus par la commande elle-même (comme de nombreux types de fichiers texte, les répertoires, etc.) et utilise un fichier alternatif ‘magique’. (Voir la section FILES ci-dessous).


La section FILES pointe vers:

Des dossiers

/usr/share/misc/magic.mgc Liste de magie compilée par défaut.

/usr/share/misc/magic Répertoire contenant les fichiers magiques par défaut.


file est lentwwwwwwwwwwwwwwww cependant (il ouvrira tous les fichiers trouvés) mais a l’avantage que vous n’avez pas besoin d’append toutes ces extensions.


En utilisant localiser:

 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 

J’imagine que cela pourrait être fait en 1 ligne mais cela semblait un peu lourd, j’ai donc créé un script pour faciliter le lancement et l’édition et je l’ findvids.sh appelé findvids.sh C’est ce qui a fonctionné pour moi.

Remarque: je n’ai peut-être pas traité TOUS les types de fichiers vidéo, mais je suis certain d’en avoir la plupart. .Mkv constitue une exception notable, car il s’agit du format cible du projet et je n’ai pas besoin de rechercher les fichiers déjà traités. Il devrait être très simple d’append des formats supplémentaires (extensions) au script pour répondre à vos besoins en examinant le modèle et en l’ajustant en conséquence, tout en conservant les guillemets au début et à la fin de l’expression. Notez que les fichiers que vous n’avez pas l’autorisation de lire ne seront pas trouvés.

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

J’ai comparé la vitesse à l’aide de Locate et les résultats sont les suivants:

 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 

contre.

 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 

De manière inattendue, trouver est plus rapide. Je vais utiliser cette approche.

Sources:

man find

man grep

https://stackoverflow.com/questions/7190565/unix-find-multiple-file-types