364 votes

Comment seulement obtenir les nom de fichier avec linux « trouver » ?

J’utilise Rechercher tous les fichiers dans le répertoire, si je reçois une liste de chemins d’accès. Cependant, j’ai besoin seulement des noms de fichiers. c'est-à-dire que j’ai et je veux obtenir

494voto

SiegeX Points 32614
find /dir1 -type f -printf "%f\n"

214voto

Kambus Points 813

Si votre recherche n’est pas une option - printf vous pouvez également utiliser basename :

36voto

kurumi Points 10096

Si vous utilisez GNU trouver

Ou vous pouvez utiliser un langage de programmation tels que Ruby(1.9+)

Si vous avez envie d’une solution de bash (au moins 4)

12voto

j03m Points 1684

Si vous souhaitez exécuter une action contre le nom de fichier uniquement, à l'aide de basename peut être difficile, par exemple

Ce -

trouver ~/clang+llvm-3.3/bin/ -type f -exec echo basename {} \;

va juste écho basename /mon/trouvé/chemin d'accès. Pas ce que nous voulons si nous voulons exécuter sur le nom de fichier.

mais vous pouvez ensuite xargs la sortie. par exemple, pour tuer les fichiers dans un dir basés sur des noms dans un autre répertoire:

cd dirIwantToRMin; trouver ~/clang+llvm-3.3/bin/ -type f -exec basename {} \; | xargs rm

-2voto

Marcus L Beach Points 1

J’ai normalement exécuter `` - type f vous donnera des fichiers et le mtime - vous donnera des fichiers de plus de 5 jours.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X