La plupart des opérations sur les fichiers sont effectuées avec git grep
, et j'ai négligé les bases, donc
J'ai décidé de le chercher à nouveau.
find
Comme son nom l'indique, find est une méthode de recherche de fichiers dans l'arborescence de répertoires. La forme de base est la suivante.
$ find (Rechercher dans le répertoire de démarrage)(Condition de recherche) (Action)
-name
$ find . -name file-1.txt -print
./file-1.txt
Recherchez par nom comme son nom l'indique. Cependant, si vous utilisez un caractère générique (*?), Assurez-vous d'utiliser des guillemets simples ou des guillemets doubles car il sera lu par l'expansion des variables de Bash.
-type
$ find . -type d -print
Comme son nom l'indique, la condition de recherche (-type) est également recherchée par nom de type. Le "d" de "-type d" est le type de fichier, et dans le cas ci-dessus, c'est une instruction pour "trouver uniquement le répertoire à partir de la position actuelle".
Il est également possible d'utiliser en combinaison comme indiqué ci-dessous. (-a est une recherche AND et peut être omis.)
$ find . -type f -a -name '*.txt' -print
Spécifier | Type de fichier |
---|---|
-type f | Fichier normal |
-type d | répertoire |
-type l | Lien symbolique |
Actuellement, tous sont affichés avec -print
, mais lorsqu'ils sont affichés avec -ls
, ils sont affichés au format" ls ".
find . -type f -a -name '*.txt' -ls
671143 0 -rw-rw-r-- 1 vagrant vagrant 0 Apr 19 04:29 ./find/file-1.txt
671215 0 -rw-rw-r-- 1 vagrant vagrant 0 Apr 19 04:29 ./find/file-3.txt
671213 0 -rw-rw-r-- 1 vagrant vagrant 0 Apr 19 04:29 ./find/file-2.txt
locate Contrairement à find, Locate est recherché à partir de la base de données dans laquelle le chemin du fichier est stocké, de sorte qu'il peut être recherché plus rapidement que find.
Il n'est pas inclus dans Linux depuis le début, vous devez donc l'installer.
$ locate --version
S'il n'est pas inclus, installez-le.
$ sudo yum install mlocate
$ sudo apt-get install mlocate
$ updatedb
La base de données sera créée par la commande ʻupdatedb` ci-dessus, et la base de données sera mise à jour à intervalles réguliers.
Les mises à jour de la base de données sont configurées pour être mises à jour une fois par jour pendant l'installation. Par conséquent, ce sera un jour plus tard que le fichier que vous venez de créer sera pris dans la recherche. En outre, le fichier que vous venez de supprimer sera capturé dans la recherche jusqu'à un jour plus tard.
`Locate est utile pour rechercher des fichiers quelque temps après leur création (suppression). ''
$ locate bash
Cela accélérera tous les fichiers nommés bash.
Options | Effets |
---|---|
-i | Ignorer la casse |
-b | Recherche uniquement le nom du fichier (ignorer le répertoire) |
-A | et recherche (généralement ou recherche) |
Recommended Posts