Qual é o equivalente em Linux do DOS “dir / s / b filename”?

16

Listar todos os arquivos / diretórios no diretório atual ou abaixo dele que correspondam a 'filename'.

    
por mackenir 09.02.2011 / 21:00

4 respostas

27

O equivalente direto é

find . -iname <filename>

, que listará todos os arquivos e diretórios chamados <filename> no diretório atual e em quaisquer subdiretórios, ignorando o caso.

Se a sua versão da pesquisa não der suporte a -iname , você poderá usar -name . Observe que, diferentemente de -iname , -name faz distinção entre maiúsculas e minúsculas.

Se você quiser apenas listar arquivos chamados <filename> , e não diretórios, adicione -type f

find . -iname <filename> -type f

Se você quiser usar curingas, precisará colocar aspas em torno dele, por exemplo,

find . -iname "*.txt" -type f

caso contrário, o shell irá expandi-lo.

Como outros apontaram, você também pode fazer:

find . | grep "\.txt$"

grep imprime linhas com base em expressões regulares, que são mais poderosas que curingas, mas possuem uma sintaxe diferente.

Veja man find e man grep para mais detalhes.

    
por 09.02.2011 / 21:33
8

Algumas camadas permitem ls **/filename , o que é bastante conveniente.

    
por 10.02.2011 / 04:42
4

Você pode fazer isso com

find . | egrep filename
    
por 09.02.2011 / 21:03
0

Também pode ser: tree -if </your/path> ou 'pwd' como caminho

    
por 08.06.2016 / 16:47

Tags