Pour vous débarrasser des erreurs d'autorisation (et autres), vous pouvez rediriger stderr vers nulle part
find / -name "something" 2>/dev/null
"Malheureusement, cela ne semble vérifier que le répertoire en cours, pas le dossier entier". Vraisemblablement, vous voulez dire qu'il ne regarde pas dans les sous-répertoires. Pour résoudre ce problème, utilisez find -name "filename"
Si le fichier en question n'est pas dans le répertoire de travail courant, vous pouvez rechercher toute votre machine via
find / -name "filename"
Cela fonctionne aussi avec des trucs comme find / -name "*.pdf"
, etc. Parfois, j'aime aussi insérer cela dans une instruction grep (puisque, sur ma machine au moins, cela met en évidence les résultats), donc je me retrouve avec quelque chose comme
find / -name "*star*wars*" | grep star
Faire ceci ou une méthode similaire m'aide simplement à trouver instantanément le nom du fichier et à reconnaître s'il s'agit en fait du fichier que je recherche.
Le find
la commande prendra beaucoup de temps, le moyen le plus rapide de rechercher un fichier utilise locate
commande, qui recherche les noms de fichiers (et leur chemin) dans une base de données indexée (mise à jour par la commande updatedb
).
Le résultat apparaîtra immédiatement avec une simple commande :
locate {file-name-or-path}
Si la commande n'est pas trouvée, vous devez installer mlocate
empaquetez et exécutez updatedb
command first pour préparer la base de données de recherche pour la première fois.
Plus de détails ici :https://medium.com/@thucnc/the-fastest-way-to-find-files-by-filename-mlocate-locate-commands-55bf40b297ab
Si besoin de trouver imbriqué dans certains répertoires :
find / -type f -wholename "*dirname/filename"
Ou répertoires connectés :
find / -type d -wholename "*foo/bar"