Comandos de Linux | Búsqueda de comandos comunes

  Tabla de contenido

1. Conceptos básicos

2. Forma gramatical y parámetros comunes

2.1 Forma gramatical

2.2 Parámetros comunes

Tres, explicación de ejemplo

3.1 parámetro -name / -iname

3.2 -parámetro de tipo

3.3 -parámetro de tiempo

3.4 -parámetro más nuevo

3.5 -exec / -ok parámetro

 Cuatro, resumen

Cinco, referencias


Cuando usamos Linux, uno de los comandos que usamos a menudo para buscar archivos es find. Comprender la función y el uso de find puede mejorar la eficiencia del trabajo. A continuación, se describe el uso de find con ejemplos específicos.

1. Conceptos básicos

El comando find se usa para buscar archivos (refiriéndose a archivos y directorios ordinarios) en el directorio y subdirectorios especificados .

2. Forma gramatical y parámetros comunes

2.1 Forma gramatical

buscar [ruta ...] [expresión]

Entre ellos, ruta es la ruta de búsqueda, y varias rutas están separadas por espacios; expresión: consta de opciones y acciones.

2.2 Parámetros comunes

-nombre patrón: busca archivos de acuerdo con el patrón especificado;

patrón -iname: igual que el parámetro -name, la diferencia es que no distingue entre mayúsculas y minúsculas;

-tipo c: busca archivos según el tipo de archivo c;

Entre ellos: c representa el tipo de archivo, los valores posibles son:

          d: directorio;

          f: archivo ordinario;

          l: enlace simbólico;

          s: enchufe;

          c: archivo de caracteres especiales;

          b: archivo de bloque especial;

          p: canalización de comandos (FIFO)

-ctime n: busca archivos modificados en los últimos n días;

-cnewer file:  busca archivos que son más recientes que el archivo de archivo ("actualización": se refiere a la hora de modificación);

-exec commond {} \ ;: ejecute el comando de shell listado en este parámetro en el archivo encontrado, preste atención a un espacio entre {} y \;

-ok commond {} \ ;: La función y el modo de parámetro son los mismos que -exec, pero cada vez que se ejecuta commond, se le preguntará al usuario si desea ejecutarlo Ingrese Y / N para seleccionar.

Tres, explicación de ejemplo

3.1 parámetro -name / -iname

Primero, cree el archivo readme.md en el directorio actual y luego busque el archivo cuyo nombre coincida con el patrón "* README.md". 

[root@localhost go]# touch readme.md
[root@localhost go]# find . -name "*README.md"
./README.md
./misc/trace/README.md
./src/cmd/compile/README.md
./src/cmd/compile/internal/ssa/README.md
./src/cmd/vendor/github.com/google/pprof/third_party/d3/README.md
./src/cmd/vendor/github.com/ianlancetaylor/demangle/README.md
./src/cmd/vendor/golang.org/x/sys/unix/README.md
./test/README.md
[root@localhost go]# 

 Como puede ver en el ejemplo anterior, se encuentran todos los archivos que cumplen con el patrón "* README.md", pero no se encuentra el archivo en minúsculas readme.md. Veamos el resultado de reemplazar el parámetro -iname:

[root@localhost go]# find . -iname "*ME.md"
./README.md
./misc/trace/README.md
./src/cmd/compile/README.md
./src/cmd/compile/internal/ssa/README.md
./src/cmd/vendor/github.com/google/pprof/third_party/d3/README.md
./src/cmd/vendor/github.com/ianlancetaylor/demangle/README.md
./src/cmd/vendor/golang.org/x/sys/unix/README.md
./test/README.md
./readme.md
[root@localhost go]#

Como puede ver, también se ha encontrado el archivo readme.md en minúsculas, que es la diferencia entre -name e -iname.

PD: En Linux, el parámetro i a menudo significa que el comando no distingue entre mayúsculas y minúsculas.

3.2 -parámetro de tipo

Busque todos los directorios llamados "* src". 

[root@localhost go]# find . -type d -name "*src"
./src
./src/cmd/api/testdata/src
./src/cmd/go/testdata/modlegacy/src
./src/cmd/internal/src
./src/cmd/link/testdata/testPErsrc
./src/go/build/testdata/withvendor/src
[root@localhost go]#

Como puede ver en el ejemplo anterior, se muestran todos los directorios que cumplen con el patrón "* src" y no se enumeran archivos ordinarios que cumplan las condiciones. 

 Encuentra todos los archivos llamados "* src".

[root@localhost go]# find . -type f -name "*src"
./src/cmd/compile/internal/syntax/testdata/issue20789.src
./src/cmd/compile/internal/syntax/testdata/issue23385.src
./src/cmd/compile/internal/syntax/testdata/issue23434.src
./src/cmd/compile/internal/syntax/testdata/issue31092.src
./src/cmd/compile/internal/syntax/testdata/sample.src
./src/go/parser/testdata/commas.src
./src/go/parser/testdata/issue11377.src
./src/go/parser/testdata/issue23434.src
……

Como puede verse en el ejemplo anterior, se han encontrado todos los archivos ordinarios que coinciden con el patrón "* src", sin incluir los directorios. 

3.3 -parámetro de tiempo

 Primero, cree el archivo testCtime en / var / account, y luego busque los archivos modificados el último día en el directorio actual.

[root@localhost account]# ls
pacct
[root@localhost account]# touch testCtime
[root@localhost account]# find . -ctime -1
.
./testCtime
[root@localhost account]#

Como puede ver en lo anterior, se han encontrado tanto "." Como testCtime, donde "." Representa el directorio actual.

3.4 -parámetro más nuevo

Primero, cree dos archivos testOne y testTwo, y luego cree un directorio testdir para buscar archivos más nuevos que testOne.

[root@localhost go]# touch testOne
[root@localhost go]# touch testTwo
[root@localhost go]# mkdir testdir
[root@localhost go]# find . -cnewer testOne
.
./testTwo
./testdir
[root@localhost go]#

Como se puede ver en los resultados de la consulta anterior, se pueden consultar archivos que son más nuevos que testOne .

3.5 -exec / -ok parámetro

Busque archivos que coincidan con el patrón "README.md" en el directorio y subdirectorios actuales, y ejecute el comando ls -l para obtener los resultados. 

[root@localhost go]# find . -name "README.md" -exec ls -l {} \;
-rw-r--r--. 1 root root 1607 9月  10 00:57 ./README.md
-rw-r--r--. 1 root root 5066 9月  10 00:57 ./misc/trace/README.md
-rw-r--r--. 1 root root 5655 9月  10 00:57 ./src/cmd/compile/README.md
-rw-r--r--. 1 root root 7945 9月  10 00:57 ./src/cmd/compile/internal/ssa/README.md
-rw-r--r--. 1 root root 2834 9月  10 00:57 ./src/cmd/vendor/github.com/google/pprof/third_party/d3/README.md
-rw-r--r--. 1 root root 98 9月  10 00:57 ./src/cmd/vendor/github.com/ianlancetaylor/demangle/README.md
-rw-r--r--. 1 root root 8678 9月  10 00:57 ./src/cmd/vendor/golang.org/x/sys/unix/README.md
-rw-r--r--. 1 root root 577 9月  10 00:57 ./test/README.md
[root@localhost go]# 

Igual que el anterior, cambie el parámetro de -exec a -ok y ejecute de la siguiente manera: 

[root@localhost go]# find . -name "README.md" -ok ls -l {} \;
< ls ... ./README.md > ? y
-rw-r--r--. 1 root root 1607 9月  10 00:57 ./README.md
< ls ... ./misc/trace/README.md > ? y
-rw-r--r--. 1 root root 5066 9月  10 00:57 ./misc/trace/README.md
< ls ... ./src/cmd/compile/README.md > ? y
-rw-r--r--. 1 root root 5655 9月  10 00:57 ./src/cmd/compile/README.md
< ls ... ./src/cmd/compile/internal/ssa/README.md > ? y
-rw-r--r--. 1 root root 7945 9月  10 00:57 ./src/cmd/compile/internal/ssa/README.md
< ls ... ./src/cmd/vendor/github.com/google/pprof/third_party/d3/README.md > ? y
-rw-r--r--. 1 root root 2834 9月  10 00:57 ./src/cmd/vendor/github.com/google/pprof/third_party/d3/README.md
< ls ... ./src/cmd/vendor/github.com/ianlancetaylor/demangle/README.md > ? y
-rw-r--r--. 1 root root 98 9月  10 00:57 ./src/cmd/vendor/github.com/ianlancetaylor/demangle/README.md
< ls ... ./src/cmd/vendor/golang.org/x/sys/unix/README.md > ? N
< ls ... ./test/README.md > ? N
[root@localhost go]#

Como puede ver en el ejemplo anterior, cada vez que ejecute el comando ls -l, se le preguntará si desea ejecutarlo. 

 Cuatro, resumen

Los parámetros comunes de find se enumeran arriba. Cabe señalar que la búsqueda de find es una búsqueda recursiva. Por ejemplo, al buscar en el directorio actual, buscará archivos en el directorio y subdirectorios actuales de forma predeterminada.

Cinco, referencias

[1]  https://www.runoob.com/linux/linux-comm-find.html

[2]  https://man7.org/linux/man-pages/man1/find.1.html

 

Supongo que te gusta

Origin blog.csdn.net/u011074149/article/details/112093819
Recomendado
Clasificación