Comandos do Linux | Encontre os comandos comuns

  índice

1. Conceitos básicos

2. Forma gramatical e parâmetros comuns

2.1 Forma gramatical

2.2 Parâmetros comuns

Três, explicação de exemplo

3.1 parâmetro -name / -iname

3.2 - parâmetro de tipo

Parâmetro 3.3 -ctime

3.4 -cnewer parâmetro

3,5 parâmetro -exec / -ok

 Quatro, resumo

Cinco, referências


Quando usamos Linux, um dos comandos que frequentemente usamos para localizar arquivos é find.Compreender a função e o uso de find pode melhorar a eficiência do trabalho. A seguir descreve o uso de find com exemplos específicos.

1. Conceitos básicos

O comando find é usado para localizar arquivos (referindo-se a arquivos e diretórios comuns) no diretório e subdiretórios especificados .

2. Forma gramatical e parâmetros comuns

2.1 Forma gramatical

encontre [caminho ...] [expressão]

Entre eles, caminho é o caminho de busca, e vários caminhos são separados por espaços; expressão: consiste em opções e ações.

2.2 Parâmetros comuns

-name padrão: Encontre arquivos de acordo com o padrão especificado;

padrão -iname: igual ao parâmetro -name, a diferença é que ele não diferencia maiúsculas de minúsculas;

-tipo c: Localiza arquivos de acordo com o tipo de arquivo c;

Dentre eles: c representa o tipo de arquivo, os valores possíveis são:

          d: diretório;

          f: arquivo comum;

          l: link simbólico;

          s: soquete;

          c: arquivo de caracteres especiais;

          b: arquivo de bloco especial;

          p: pipeline de comando (FIFO)

-ctime n: localiza os arquivos modificados nos últimos n dias;

-cnewer file:  encontra arquivos que são mais recentes que o file file ("update": refere-se à hora da modificação);

-exec commond {} \ ;: executa o comando shell listado neste parâmetro no arquivo encontrado, preste atenção a um espaço entre {} e \;

-ok commond {} \ ;: A função e o modo de parâmetro são iguais a -exec, mas sempre que o commond for executado, o usuário será questionado se deseja executá-lo. Digite S / N para selecionar.

Três, explicação de exemplo

3.1 parâmetro -name / -iname

Primeiro, crie o arquivo readme.md no diretório atual e, em seguida, encontre o arquivo cujo nome corresponde ao padrão "* 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 você pode ver no exemplo acima, os arquivos que satisfazem o padrão "* README.md" foram todos encontrados, mas o arquivo em minúsculas readme.md não foi encontrado. Vejamos o resultado da substituição do 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 você pode ver, o arquivo readme.md em minúsculas também foi encontrado.Esta é a diferença entre -name e -iname.

PS: No Linux, o parâmetro i geralmente significa que o comando não diferencia maiúsculas de minúsculas.

3.2 - parâmetro de tipo

Encontre todos os diretórios com o nome "* 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 você pode ver no exemplo acima, todos os diretórios que atendem ao padrão "* src" são exibidos e nenhum arquivo comum que atende às condições é listado. 

 Encontre todos os arquivos com o nome "* 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 pode ser visto no exemplo acima, todos os arquivos comuns que correspondem ao padrão "* src" foram encontrados, sem incluir os diretórios. 

Parâmetro 3.3 -ctime

 Primeiro, crie o arquivo testCtime em / var / account e, em seguida, pesquise os arquivos modificados no último dia no diretório atual.

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

Como você pode ver acima, ambos "." E testCtime foram encontrados, onde "." Representa o diretório atual.

3.4 -cnewer parâmetro

Primeiro, crie dois arquivos testOne e testTwo e, em seguida, crie um diretório testdir para localizar arquivos mais recentes 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 pode ser visto nos resultados da consulta acima, os arquivos mais recentes que testOne podem ser consultados .

3,5 parâmetro -exec / -ok

Procure por arquivos que correspondam ao padrão "README.md" no diretório e subdiretórios atuais e execute o comando ls -l para obter os 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]# 

Da mesma forma que acima, altere o parâmetro de -exec para -ok e execute da seguinte forma: 

[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 você pode ver no exemplo acima, toda vez que executar o comando ls -l, será perguntado se deseja executá-lo. 

 Quatro, resumo

Os parâmetros comuns de find estão listados acima. Deve-se notar que a pesquisa de find é uma pesquisa recursiva. Por exemplo, ao pesquisar no diretório atual, ele irá pesquisar por arquivos no diretório atual e subdiretórios por padrão.

Cinco, referências

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

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

 

Acho que você gosta

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