Comment utiliser la commande fd sous Linux
Sous Linux, fd
est une alternative plus simple au find
commander. Il a une syntaxe simplifiée, utilise des valeurs par défaut sensibles et a un comportement de bon sens intégré. Prenons-le à l’épreuve.
Sommaire
fd versus find: quelle est la différence?
le fd
n'est pas censée remplacer la commande traditionnelle find
commande, qui a été sur Linux, eh bien, depuis toujours. Au lieu, fd
essaie de satisfaire la majorité des utilisations courantes de find
de manière plus simple, et c'est souvent huit ou neuf fois plus rapide que find
. Vous pouvez voir certains de ses benchmarks sur la page du référentiel GitHub du projet.
fd
a une sortie colorisée, similaire à celle de certains ls
modes. Il est récursif, mais ne recherche pas les répertoires masqués par défaut. Il connaît Git et ignorera également automatiquement tous les modèles de votre fichier «.gitignore».
fd
est insensible à la casse par défaut. Cependant, si votre modèle de recherche contient une lettre majuscule, fd
fonctionne dans un mode sensible à la casse. Bien sûr, vous pouvez remplacer les valeurs par défaut, mais, dans de nombreux cas, elles jouent en votre faveur.
Installation de fd
Depuis Ubuntu 19.04 (Disco Dingo,) vous pouvez installer fd
directement en appelant le package officiellement maintenu avec apt-get
. Si vous exécutez une ancienne version d'Ubuntu, consultez les instructions d'installation sur la page du hub Git.
Tapez ce qui suit:
sudo apt-get install fd-find
Dans Ubuntu, la commande est fdfind
pour éviter un conflit de nom avec un autre utilitaire existant. Si tu veux que ce soit fd
, vous pouvez configurer un alias:
alias fd=fdfind
Pour rendre l'alias persistant afin qu'il reste disponible après les redémarrages, placez-le dans votre fichier «.bashrc» ou «.bash_aliases».
À installer fd
sur Fedora, tapez cette commande:
sudo dfn install fd-find
Sur Manjaro, tapez ce qui suit:
sudo pacman -Syu fd
fd contre fdfind
Pour éviter toute confusion, nous avons laissé la commande avec son nom par défaut, fdfind
, sur notre PC de test Ubuntu. fd
et fdfind
sont exactement la même commande, comme vous le verrez dans l'exemple suivant (si vous demandez fdfind
pour montrer sa version, il s'appelle «fd»):
fdfind --version
Nous appellerons la commande «fed», mais dans les exemples, nous utiliserons Ubuntu «fdfind». Sur d'autres distributions Linux, vous pouvez taper «fd» au lieu de «fdfind» pour enregistrer quelques frappes.
Recherches simples avec fd
Si tu utilises fd
sans options de ligne de commande, il se comporte un peu comme ls
, sauf qu'il répertorie les fichiers dans les sous-répertoires par défaut.
Tapez ce qui suit:
fdfind
La sortie apparaît dans différentes couleurs pour différents types de fichiers et répertoires.
Pour voir les fichiers d'un type spécifique, utilisez le
(extension) option. Notez que vous n’avez pas besoin de faire précéder l’extension d’un point (.), Ni de respecter la casse.-e
Par exemple, vous pouvez taper ce qui suit:
fdfind -e png
Désormais, les seuls fichiers répertoriés sont des fichiers image PNG.
Pour rechercher un seul fichier, tapez son nom sur la ligne de commande, comme ceci:
fdfind index.page
Le fichier est trouvé et se trouve dans un sous-répertoire. Nous n'avons pas eu à dire fd
pour rechercher récursivement.
Pour que la recherche démarre dans un répertoire particulier, incluez un chemin de fichier sur la ligne de commande. La commande suivante lancera une recherche dans le répertoire «/ etc» et recherchera les fichiers contenant «passwd» dans le nom du fichier:
fdfind passwd /etc
Ici, nous recherchons tous les fichiers de code source C qui contiennent "coord" dans le nom du fichier:
fdfind -e c coord
Deux fichiers correspondants ont été trouvés.
fd et Git
Git est un système de contrôle de version de code source extrêmement populaire. Si vous utilisez Git sur votre ordinateur, vous utilisez probablement des fichiers «.gitignore» pour indiquer à Git quels fichiers il doit s'occuper et lesquels il peut ignorer. Par défaut, fd
respecte les paramètres de vos fichiers «.gitignore».
Dans ce répertoire, nous avons un référentiel Git et un fichier «.gitignore». Nous tapons ce qui suit:
ls -adl .git*
Demandons fd
pour lister tous les fichiers contenant «coord» dans le nom de fichier. Nous répéterons ensuite la recherche et utiliserons le -I
(pas d'ignorer) option. Cela raconte fd
pour ignorer les paramètres du fichier «.gitignore» et signaler chaque fichier correspondant.
Pour faire tout cela, nous tapons ce qui suit:
fdfind coord
fdfind coord -I
Les deux fichiers supplémentaires du deuxième ensemble de résultats sont des fichiers objets. Ceux-ci sont créés lors de la compilation d'un programme de fichiers. Ils sont ensuite utilisés par l'éditeur de liens pour créer la version exécutable finale du programme.
Les fichiers objets sont généralement ignorés par les programmes de contrôle de version de code source. Ils sont régénérés chaque fois que vous compilez votre programme, vous n’avez donc pas à en stocker des copies. Il existe une entrée dans le fichier ".gitignore" qui indique à Git d'ignorer les fichiers objets et, par défaut, fd
les ignore aussi.
le -I
(pas d'ignorer) force l'option fd
pour renvoyer tout ce qu'il trouve, plutôt que d'être guidé par le fichier «.gitginore».
Types de fichiers et sensibilité à la casse
Vous pouvez demander fd
pour rechercher des répertoires, des fichiers (y compris ceux qui sont exécutables et vides) et des liens symboliques. Vous pouvez le faire en utilisant le -t
(type), suivie de l'une des lettres ci-dessous:
- F: Fichier.
- ré: Annuaire.
- l: Lien symbolique.
- X: Fichier exécutable.
- e: Fichier vide.
Ce qui suit recherche un répertoire appelé images:
fdfind -td images
Une correspondance est trouvée, un sous-répertoire plus bas que le répertoire actuel.
Voyons comment le respect de la casse fonctionne avec les modèles de recherche. Nous tapons ce qui suit pour rechercher d'abord les fichiers qui contiennent "geo" dans leurs noms de fichiers, puis ceux qui contiennent "Geo" dans leurs noms de fichiers:
fdfind -tf geo
fdfind -tf Geo
Dans la première commande, nous avons utilisé un modèle de recherche en minuscules, ce qui a causé fd
pour fonctionner de manière insensible à la casse. Cela signifie que «Geo» et «geo» sont des correspondances valides.
Notre deuxième commande contenait un caractère majuscule, ce qui provoquait fd
pour fonctionner de manière sensible à la casse. Cela signifie que seul «Geo» est une correspondance valide.
Exécution de la commande
le fd
La commande vous permet de lancer une autre commande et de l'exécuter sur chacun des fichiers trouvés.
Supposons que nous sachions qu’il existe un fichier Zip quelque part dans l’arborescence de nos répertoires de code source. Nous pouvons le rechercher à l'aide de la commande suivante, qui recherche les fichiers avec l'extension ZIP:
fdfinf -e zip
Avec le -x
(exec), vous pouvez passer chaque fichier trouvé à une autre commande pour être traité par celui-ci. Par exemple, nous pouvons taper ce qui suit pour appeler l'utilitaire de décompression pour décompresser notre fichier ZIP (le «{}» est un espace réservé représentant le fichier trouvé):
fdfind-e zip -x unzip {}
Cela décompressera le fichier dans le répertoire de travail actuel. Si nous voulons qu'il soit décompressé dans le répertoire contenant le fichier ZIP, nous pouvons utiliser l'un des espaces réservés suivants:
- {}: Le chemin d'accès complet au fichier et le nom du fichier trouvé.
- {/}: Le nom de fichier du fichier trouvé.
- {//}: Le répertoire contenant le fichier trouvé.
- {/.}: Le nom de fichier du fichier trouvé, sans l'extension.
Pour que notre fichier ZIP soit trouvé et décompressé dans le répertoire qui le contient, nous pouvons utiliser la décompression -d
(directory) et passez dans l'espace réservé du répertoire parent ({//}
):
fdfind-e zip -x unzip {} -d {//}
Le fichier ZIP est ensuite localisé et décompressé dans son répertoire parent.
Votre recherche préférée?
Parce qu'il couvre les utilisations les plus courantes avec une telle simplicité, fd
peut facilement devenir votre commande «trouver». Chaque fois que vous avez besoin de ses fonctionnalités plus avancées, vous pouvez toujours revenir à ce vétéran chevronné, find
.