De nombreux programmeurs Linux utilisent le find
commander chaque jour de leur carrière. Mais find
donne un ensemble limité d'entrées de système de fichiers, et si vous devez faire un grand ensemble de find
opérations, ce n'est même pas très rapide. Donc à la place, je préfère utiliser le Rust fd
car elle fournit des valeurs par défaut sensibles qui fonctionnent pour la plupart des cas d'utilisation.
Comme le dit son README, "fd
est un programme pour trouver des entrées dans votre système de fichiers. C'est une alternative simple, rapide et conviviale à find
." Il propose une traversée de répertoires parallélisée, de sorte qu'il peut rechercher plusieurs répertoires à la fois. Il prend en charge les expressions régulières (regex) et les modèles basés sur glob.
Installer fd
Sous Linux, vous pouvez installer fd
depuis votre référentiel de logiciels (une liste des packages disponibles se trouve sur la page fd de Repology.) Par exemple, sur Fedora :
$ sudo dnf install fd-find
Sur macOS, utilisez MacPorts ou Homebrew.
Alternativement, vous pouvez utiliser le gestionnaire de packages Cargo de Rust :
$ cargo install fd-find
Utiliser fd
Pour faire une recherche simple, lancez fd
après n'importe quel argument, tel que :
$ fd sh
registry/src/github.com-1ecc6299db9ec823/cc-1.0.67/src/bin/gcc-shim.rs
registry/src/github.com-1ecc6299db9ec823/exa -0.10.1/completions/completions.bash
registry/src/github.com-1ecc6299db9ec823/exa-0.10.1/completions/completions.fish
registry/src/github.com-1ecc6299db9ec823/exa -0.10.1/completions/completions.zsh
registry/src/github.com-1ecc6299db9ec823/exa-0.10.1/xtests/run.sh
registry/src/github.com-1ecc6299db9ec823/git2 -0.13.18/src/stash.rs
registry/src/github.com-1ecc6299db9ec823/libc-0.2.94/src/unix/solarish
registry/src/github.com-1ecc6299db9ec823/libgit2 -sys-0.12.19+1.1.0/libgit2/cmake/SelectHashes.cmake
registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/include/git2/ stash.h
registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/include/git2/sys/hashsig.h
registry/src/github. com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/script/backport.sh
registry/src/githu b.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/script/leaks.sh
registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0 /libgit2/script/valgrind.sh
registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/src/config_snapshot.c
[...]
Si vous souhaitez rechercher un répertoire spécifique, fournissez le chemin du répertoire comme second argument de fd
, tels que :
$ fd passwd /etc
/etc/pam.d/passwd
/etc/passwd
/etc/passwd-
/etc/security/opasswd
Pour rechercher une extension de fichier particulière, utilisez -e
Comme une option. Par exemple :
$ fd . '/home/ssur/exa' -e md
/home/ssur/exa/README.md
/home/ssur/exa/devtools/README.md
/home/ssur/ exa/man/exa.1.md
/home/ssur/exa/man/exa_colors.5.md
/home/ssur/exa/xtests/README.md
$Vous pouvez également exécuter une commande en fournissant
-x
ou-X
.
- Le
-x/--exec
L'option exécute une commande externe pour chaque résultat de recherche (en parallèle). - Le
-X/--exec-batch
L'option lance la commande externe une fois avec tous les résultats de la recherche comme arguments.
Par exemple, pour rechercher récursivement toutes les archives ZIP et les décompresser :
$ fd -e zip -x unzip
Ou, pour répertorier tous les fichiers d'un répertoire particulier qui ont été modifiés au cours des derniers n nombre de jours, utilisez le --changed-within
choix :
$ fd . '/home/ssur/Work/' --changed-within 10d
/home/ssur/Work/wildfly/connector/src/main/java/org/jboss/as/connector/subsystems/data_sources/JdbcDriverAdd. java
/home/ssur/Work/wildfly/connector/src/main/java/org/jboss/as/connector/subsystems/data_sources/JdbcExample.java
[...]
Et pour rechercher tous les fichiers qui ont été modifiés avant un certain nombre de jours, utilisez le --changed-before
n choix :
$ fd . '/home/ssur/Work/' --changed-before 365d
Plus de ressources Linux
- Aide-mémoire des commandes Linux
- Aide-mémoire des commandes Linux avancées
- Cours en ligne gratuit :Présentation technique de RHEL
- Aide-mémoire sur le réseau Linux
- Aide-mémoire SELinux
- Aide-mémoire sur les commandes courantes de Linux
- Que sont les conteneurs Linux ?
- Nos derniers articles Linux
Ici, .
agit comme une entrée générique pour indiquer fd
pour renvoyer tous les fichiers.
Pour en savoir plus sur les fonctionnalités de fd
, consultez sa documentation sur GitHub.
Conclusion
Une chose que j'aime particulièrement à propos de fd
est que le modèle de recherche est insensible à la casse par défaut, ce qui facilite la recherche même lorsque vous avez une connaissance imprécise de ce que vous recherchez. Mieux encore, il automatiquement passe en sensible à la casse si le modèle contient un caractère majuscule.
Un autre avantage est qu'il utilise un code couleur pour mettre en évidence différents types de fichiers.
Si vous utilisez déjà cet incroyable outil Rust, veuillez nous faire part de vos réflexions dans les commentaires.