Vous pouvez utiliser les fonctions de ligne de commande suivantes pour trouver et ouvrir rapidement le fichier concerné. Je trouve cela plus facile que de taper une longue chaîne de requête dans la fenêtre du projecteur.
Ajouter les fonctions suivantes dans ~/.bash_aliases
.
# find any item matching search query in file name
spot(){
mdfind "kMDItemDisplayName=='*$1*'cd";
}
# restrict to files under (recursive) a specific path
findpaper(){
mdfind -onlyin "/Users/foo/articles" "kMDItemDisplayName=='*$1*'cd";
}
# default to open the first entry unless 2nd positional argument is given
openpaper(){
FILEID=$(printf "%sp" ${2:-1})
open "$(mdfind -name -onlyin "/Users/foo/articles" "kMDItemDisplayName=='*$1*'cd" | sed -n "${FILEID}")"
}
Maintenant, soit source ~/.bash_aliases
soit ouvrir une nouvelle fonction de chargement de terminal. Pour rechercher des fichiers avec des mots, pie et 2016 n'importe où dans le nom du fichier, faites
spot pie*2016 #or
spot 2016*pie
Il n'est pas nécessaire de précéder ou d'ajouter *
à votre requête comme modèle de recherche, '*$1*'
marque déjà l'entrée de joker au début et à la fin de votre requête. L'ajout de cd
permet de ne pas tenir compte de la casse ni des signes diacritiques, par exemple, fred
renvoie à la fois Frédéric et Frédéric.
findpaper
limitera la recherche aux résultats situés sous un chemin spécifique (récursif) tandis que openpaper pie*201
ouvrira un résultat de recherche (ou le premier de plusieurs résultats) ou openpaper pie*201 3
ouvrira une troisième entrée de résultat. Pour éviter d'ouvrir des scripts bash ou d'autres fichiers non documentaires, vous pouvez restreindre le contenu du fichier par des attributs de recherche supplémentaires. Voir File Metadata Query Expression Syntax et https://ss64.com/osx/mdfind.html pour l'utilisation d'autres opérateurs de recherche.