J'ai un dossier parent nommé "parent_folder" avec beaucoup de sous-dossiers, dans ces sous-dossiers se trouve un fichier nommé "foo.mp4".
Je peux trouver ces fichiers facilement en faisant ceci:
mymacbook:parent_folder username$ find ./ -name "foo.mp4" -exec echo {} \;
Maintenant, cela renvoie le chemin de chaque fichier, par rapport à parent_folder /
./path/to/foo.mp4
Comment puis-je retourner uniquement le chemin, sans le nom de fichier?
find ./ -name "foo.mp4" -printf "%h\n"
affichera le chemin d'accès à chaque fichier trouvé (un par ligne). De plus, comme d'habitude, personne n'utilise -exec echo {}
donc il y a -print
(défaut même omis) ou printf
action.
-printf
est uniquement GNU. L'OP mentionne OS / X (un système BSD).
-printf
%h
principaux répertoires du nom du fichier (tous sauf le dernier élément). Si le nom de fichier ne contient aucune barre oblique (car il se trouve dans le répertoire en cours), le spécificateur% h se développe en "." .