Trouver les noms de fichiers exécutables sans chemin


9

J'ai un dossier avec de nombreux exécutables et je veux omettre le chemin dans les résultats de la commande find. cette commande affiche les fichiers que je veux voir, mais elle répertorie également le chemin; Je veux juste le nom du fichier.

find /opt/g09 -maxdepth 1 -executable

comment puis-je obtenir la sortie de find pour afficher uniquement les noms de fichiers, et non le chemin complet?

Réponses:


10

Ou utiliser:

find /opt/g09 -maxdepth 1 -executable -printf "%f\n"

l'ajout du -type fdrapeau fonctionne également ici.

Du findmanuel:

 %f     File's name with any leading directories removed (only the last element).

Cette réponse nécessite uniquement que vous ayez GNU findtandis que d'autres nécessitent d'autres programmes pour manipuler vos résultats.


-type f C'est à quoi j'essayais de penser! Merci de coder l'homme!
j0h

@ j0h pas de problème!
nixpower

6

Utilisation basename:

find /opt/g09 -maxdepth 1 -executable -exec basename {} \;

De man basename:

Print NAME with any leading directory components removed.

Vous essayez également de findtout, pour limiter votre recherche aux seuls fichiers, utilisez:

find /opt/g09 -type f -maxdepth 1 -executable -exec basename {} \;

3

La solution la plus évidente pour moi est

(cd /opt/g09; find -maxdepth 1 -executable)

Parce que vous démarrez un sous-shell, vous restez dans le même répertoire. L'avantage de cette méthode est que vous n'avez pas besoin d'analyser. L'inconvénient est que vous démarrez un sous-shell (vous n'allez pas le ressentir cependant).


1
C'est une idée intelligente.
AB

1

Avec awk, en divisant le chemin par le délimiteur /, imprimez la dernière section ( $NF):

find /opt/g09 -maxdepth 1 -executable | awk -F/ '{print $NF}'

Où est ta version python, frère? ;)
Sergiy Kolodyazhnyy

@Serg haha, je devais attacher mes doigts :)
Jacob Vlijm

1

En utilisant une combinaison de findetperl

find /opt/g09 -maxdepth 1 -type f -executable | perl -pe 's/.+\/(.*)$/\1/'

Excellente façon d'apprendre du Perl: P
nixpower
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.