Ubuntu encontra arquivos e diretório correspondentes a um nome em uma linha

2

Existem parâmetros do comando find para localizar arquivos e diretórios, respectivamente -f e -d , mas eu quero evitar escrever dois comandos find e && ou || entre eles.

Eu quero encontrar o arquivo ou diretório (o que for encontrado condicionalmente) em um comando, pode -d e -f ser ORed?

    
por Vicky Dev 18.05.2016 / 20:24

2 respostas

2

Use a opção -o .

From the find man page (under the OPERATORS heading):

   expr1 -o expr2
          Or; expr2 is not evaluated if expr1 is true.
    
por 18.05.2016 / 20:30
2

Se você não especificar -f nem -d , find com mostrará todos os tipos de inodes (arquivos, diretórios, dispositivos, link etc ...). Se você quiser apenas arquivos e diretórios, use -o e possivelmente use parênteses com escape se for usar outro tipo de conditins.

Por exemplo, todos os arquivos, diretórios, links etc .... que foram modificados / criados nos últimos dois dias:

find . -iname '*blah*' -mtime -2

O mesmo que acima, mas arquivos e diretórios exclusivos (sem links sym, dispositivos ...)

find . -iname '*blah*' \( -type d -o -type f \) -mtime -2

    
por 24.05.2016 / 02:51