Il existe plusieurs façons de rechercher des fichiers sur les systèmes GNU/Linux. Les deux principales sont locate
y find
:
-
locate
utilise une base de données de fichiers connus dans l'ensemble du système pour trouver des documents. Il est très utile mais nécessite de maintenir cette base de données à jour (avec updatedb
), ce qui peut prendre beaucoup de temps ;
-
find
recherche les fichiers dans un répertoire donné. Il est généralement plus lent que locate
(il n'a pas de base de données persistante) mais il est plus fin.
Ainsi, si vous avez besoin de trouver tous les fichiers sur votre système qui correspondent à vos critères, vous pouvez utiliser locate
:
$ locate --regex "avi|flv" | grep '\.\(avi\|flv\)$'
alors que si vous effectuez une recherche dans un répertoire spécifique et que vous voulez être sûr de ne pas avoir d'effet de retard de cache, vous pouvez utiliser find
:
$ find /path/to/your/directory -regex '.*\.\(avi\|flv\)'
Maintenant, pour copier ces fichiers dans un dossier spécifique :
$ locate --regex "avi|flv" | grep '\.\(avi\|flv\)$' | xargs cp /path/to/specific/folder
ou
$ find /path/to/your/directory -regex '.*\.\(avi\|flv\)' -exec cp {} /path/to/specific/folder \;