103 votes

Comment rechercher tous les fichiers commençant par le nom "ABC" dans un répertoire ?

Je dois rechercher des fichiers commençant par un nom particulier. Il peut y avoir plusieurs fichiers commençant par un motif particulier et je veux lister tous ces fichiers présents dans le répertoire.

3voto

Preetom Saha Arko Points 139

La solution la plus simple pour moi

ls | grep PATTERN

Ici, vous pouvez donner n'importe quelle expression régulière dans le PATTERN.

Par exemple, pour trouver les fichiers dont le nom contient "ab", tapez

ls | grep ".*ab.*"

Pour trouver les fichiers commençant par "ab", tapez

ls | grep "^ab"

3voto

WinEunuuchs2Unix Points 91128

Si vous ne connaissez pas le répertoire dans lequel se trouve le ABC* et que vous avez des millions de fichiers, le système de gestion de l'information de l'entreprise est le suivant locate est la méthode la plus rapide.

$ locate /ABC
/mnt/clone/home/rick/.cache/mozilla/firefox/9fu0cuql.default/cache2/entries/ABC6AD2FEC16465049B48D39FD2FE538258F2A34
/mnt/clone/home/rick/.cache/mozilla/firefox/9fu0cuql.default/cache2/entries/ABCBFDA54262F47253F95ED6ED4131A465EE0E39
/mnt/clone/usr/src/linux-headers-5.0.1-050001/tools/lib/lockdep/tests/ABCABC.sh
/mnt/clone/usr/src/linux-headers-5.0.1-050001/tools/lib/lockdep/tests/ABCDBCDA.sh
/mnt/clone/usr/src/linux-headers-5.0.1-050001/tools/lib/lockdep/tests/ABCDBDDA.sh
/mnt/old/home/rick/.cache/mozilla/firefox/3vkvi6ov.default/cache2/entries/ABC0C99FCEABAD0C6AA2078CD025A1CDE48D7BA1
/usr/src/linux-headers-5.0.1-050001/tools/lib/lockdep/tests/ABCABC.sh
/usr/src/linux-headers-5.0.1-050001/tools/lib/lockdep/tests/ABCDBCDA.sh
/usr/src/linux-headers-5.0.1-050001/tools/lib/lockdep/tests/ABCDBDDA.sh

Notes :

  • La commande ci-dessus prend 1 seconde pour être exécutée sur 1 million de fichiers.
  • En comparaison, le find à partir de / Le répertoire racine sera un très long moment et génèrent de nombreuses erreurs de permission.
  • Si les fichiers ont été créés aujourd'hui, vous devez exécuter sudo updatedb d'abord.

1voto

HMagdy Points 1281

Commande-t dans l'un de mes plugins vim préférés, c'est un plugin basé sur ruby au-dessus de l'intégration avec FZF.

En utilisant Comamnd-T et FZF, vous pouvez effectuer la recherche avec un mécanisme "flou" extrêmement rapide pour :

  • Ouverture de fichiers et de tampons
  • Sauter aux balises et à l'aide
  • Commandes en cours d'exécution, ou recherches et commandes précédentes
  • avec un nombre minimal de frappes.

Comme vous pouvez le constater

enter image description here

Je cherche toujours dans l'historique des commandes en ouvrant un nouveau terminal et en tapant :

CTRL+R

En plus de la recherche dans tous les dossiers de manière récursive en écrivant dans n'importe quel onglet du terminal :

fzf

Ensuite, commencez votre nom de fichier

ABC

Vous pouvez également écrire à l'intérieur vim

:CommandT 

Très utile, surtout dans les grands dossiers.

0voto

Nathan Alden Points 61

J'utilise

ls | grep abc

ou

ls -la | grep abc

Il montre tous les fichiers avec abc, pas seulement ceux qui commencent par abc. Mais, c'est un moyen très simple pour moi de le faire.

0voto

Sergiy Kolodyazhnyy Points 97292

Python :

$ python -c 'import sys,os;found=[os.path.join(r,i) for r,s,f in os.walk(".") for i in f if i.startswith("ABC")];map(lambda x: sys.stdout.write(x+"\n") ,found)'

Perl :

$ perl -le 'use File::Find;find(sub{ -f && $_ =~/^ABC/ && print $File::Find::name  },".")'

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X