Comment utiliser la commande fd sous Linux
Publié: 2022-01-29 Sous Linux, fd
est une alternative plus simple à la commande find
. Il a une syntaxe simplifiée, utilise des valeurs par défaut raisonnables et a un comportement de bon sens intégré. Prenons-le à son rythme.
fd versus find : quelle est la différence ?
La commande fd
n'est pas destinée à remplacer la commande traditionnelle de find
, qui existe depuis toujours sur Linux. Au lieu de cela, fd
essaie de satisfaire la majorité des utilisations courantes de find
d'une 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 modes ls
. Il est récursif, mais ne recherche pas les répertoires caché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 en 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.
CONNEXION: Comment utiliser toutes les commandes de recherche de Linux
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 utilisez 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 vous voulez que ce soit fd
, vous pouvez configurer un alias :
alias fd=fdfind
Pour rendre l'alias persistant afin qu'il reste disponible après le redémarrage, placez-le dans votre fichier ".bashrc" ou ".bash_aliases".
CONNEXION: Comment créer des alias et des fonctions Shell sous Linux
Pour installer fd
sur Fedora, tapez cette commande :
sudo dfn installer fd-trouver
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
d'afficher sa version, il s'appelle « fd ») :
fdfind --version
Nous appellerons la commande "fed", mais dans les exemples, nous utiliserons le "fdfind" d'Ubuntu. Sur d'autres distributions Linux, vous pouvez taper "fd" au lieu de "fdfind" pour économiser quelques frappes.
Recherches simples avec fd
Si vous utilisez fd
sans options de ligne de commande, il se comporte un peu comme ls
, sauf qu'il répertorie les fichiers dans des sous-répertoires par défaut.
Tapez ce qui suit :
trouver
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 l'option
(extension). Notez qu'il n'est pas nécessaire de faire précéder l'extension d'un point (.) et qu'elle n'est pas non plus sensible à la casse.-e
Par exemple, vous pouvez taper ce qui suit :
fdfind -e png
Désormais, les seuls fichiers répertoriés sont les 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
de rechercher de manière récursive.
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 dont le nom contient "passwd" :
fdfind mot de passe /etc
Ici, nous recherchons tous les fichiers de code source C contenant "coord" dans le nom du fichier :
fdfind -ec 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 se pré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
de lister tous les fichiers contenant « coord » dans le nom du fichier. Nous allons ensuite répéter la recherche et utiliser l'option -I
(no ignore). Cela indique à fd
d'ignorer les paramètres du fichier ".gitignore" et de signaler chaque fichier correspondant.
Pour faire tout cela, nous tapons ce qui suit :
fdtrouver 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 lorsqu'un programme de fichier est compilé. 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 du code source. Ils sont régénérés chaque fois que vous compilez votre programme, vous n'avez donc pas besoin d'en stocker des copies. Il y a une entrée dans le fichier ".gitignore" qui demande à Git d'ignorer les fichiers objets et, par défaut, fd
les ignore également.
L'option -I
(pas d'ignorance) force fd
à 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
de 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 l'option -t
(type), suivie de l'une des lettres ci-dessous :
- f : Fichier.
- d : Répertoire.
- 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 l'actuel.
Voyons comment la sensibilité à 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 géo
fdfind -tf Géo
Dans la première commande, nous avons utilisé un modèle de recherche en minuscules, ce qui a amené fd
à 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 faisait que fd
fonctionnait de manière sensible à la casse. Cela signifie que seul "Geo" est une correspondance valide.
Exécution de la commande
La commande fd
permet de lancer une autre commande et de l'exécuter sur chacun des fichiers trouvés.
Disons que nous savons qu'il y a un fichier Zip quelque part dans notre arborescence de répertoires de code source. Nous pouvons le rechercher en utilisant la commande suivante, qui recherche les fichiers avec l'extension ZIP :
fdfinf -e zip
Avec l'option -x
(exec), vous pouvez passer chaque fichier trouvé à une autre commande pour qu'il soit traité par celle-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 décompresser {}
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é.
- {/} : nom de fichier du fichier trouvé.
- {//} : le répertoire contenant le fichier trouvé.
- {/.} : 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 l'option unzip -d
(répertoire) et passer l'espace réservé du répertoire parent ( {//}
):
fdfind -e zip -x décompresser {} -d {//}
Le fichier ZIP est alors localisé et décompressé dans son répertoire parent.
Votre trouvaille préférée ?
Parce qu'il couvre les utilisations les plus courantes avec une telle simplicité, fd
peut facilement devenir votre commande "trouver" incontournable. Chaque fois que vous avez besoin de ses fonctionnalités plus avancées, vous pouvez toujours revenir à ce vétéran chevronné, find
.
Commandes Linux | ||
Des dossiers | tar · pv · chat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · plier · uniq · journalctl · queue · stat · ls · fstab · echo · moins · chgrp · chown · rev · regarder · chaînes · type · renommer · zip · décompresser · monter · umount · installer · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convertir · rclone · déchiqueter · srm | |
Processus | alias · écran · top · sympa · renice · progrès · strace · systemd · tmux · chsh · historique · at · batch · gratuit · lequel · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · mur · oui · kill · sleep · sudo · su · time · groupadd · usermod · groupes · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg | |
La mise en réseau | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · creuser · doigt · nmap · ftp · curl · wget · qui · whoami · w · iptables · ssh-keygen · ufw |
CONNEXION: Meilleurs ordinateurs portables Linux pour les développeurs et les passionnés