existe-t-il des commandes pour rechercher votre Mac à l'aide d'un terminal? J'ai essayé d'utiliser grep pour rechercher, mais cela semble un peu insensible et rien ne se présente.
Par exemple, je voudrais taper "Fichiers grep" (un nom de dossier) et il suffit d'imprimer une ligne vierge et rien ne se passe.
Vous pouvez également utiliser la commande mdfind
pour effectuer une recherche avec Spotlight. Plus d'infos ici .
Utilisez mdfind -name searchterm
afin de récupérer des fichiers portant le nom searchterm
. Utilisez mdfind searchterm
pour effectuer une recherche sur le nom et le contenu du fichier.
Si vous voulez juste trouver des fichiers avec un certain nom, utilisez find
La page de manuel peut être trouvée ICI ou en tapant man find
à l'invite du terminal.
Fondamentalement, find cherchera de manière récursive un fichier répondant aux critères que vous spécifiez. L'exemple le plus simple:
find . -name file_name -print
Cela recherchera un fichier nommé "nom_fichier" commençant dans le répertoire courant et effectuant une recherche ci-dessous, puis imprimera les fichiers portant ce nom.
find ~ -name ".DS_Store" -delete
Cela va trouver tous les fichiers .DS_Store et les supprimer.
Vous pouvez rechercher par nom, regex, date. Vous pouvez agir sur le fichier de n'importe quelle manière sous Unix avec le prédicat -exec
.
Vous pouvez également utiliser find comme point de départ d'un pipeline d'actions plus complexe. Exemple:
find . -type f -print | egrep -i '\.m4a$|\.mp3$'
Trouvera tous les fichiers avec les extensions .m4a ou .mp3
find . -type f -print | egrep -i '\.m4a$|\.mp3$' | wc -l
Vous donnera un compte de ces fichiers.
Si vous voulez chercher dans tout un dossier, utilisez simplement -r sur grep:
grep -r pattern folder/to/search
Avec find, vous pouvez également utiliser xargs:
find folder/to/search -name '*.txt' | xargs grep pattern
ou pour vous assurer que vous recherchez deux fichiers à la fois et que vous avez donc les noms de fichiers spécifiés:
find folder/to/search -name '*.txt' | xargs grep -n2 pattern
grep
attend à la fois un motif et une spécification de fichier. S'il en manque un, il utilise ce qui est transmis en tant que modèle et attend que les données soient recherchées via une entrée standard.
Si vous souhaitez utiliser une spécification de fichier plus complexe, utilisez find
.
find ~ -name '*.txt' -exec grep -q 'secret' {} \; -print