Existem parâmetros de find
comando para localizar arquivos e diretórios respectivamente -f
e -d
, mas quero evitar escrever dois find
comandos e &&
ou ||
entre eles.
Quero encontrar um arquivo ou diretório (o que for encontrado condicionalmente) em um comando, pode -d
ser -f
ORed?
Responder1
Use a -o
opção.
Deencontrarpágina de manual (sob o título OPERADORES):
expr1 -o expr2 Or; expr2 is not evaluated if expr1 is true.
Responder2
Se você não especificar -f
nem -d
, find
mostrará todos os tipos de inodes (arquivos, diretórios, dispositivos, link etc...). Se você deseja apenas arquivos e diretórios, use -o
e, possivelmente, use parênteses de escape se for usar outro tipo de condição.
Por exemplo, todos os arquivos, diretórios, links etc.... que foram modificados/criados nos últimos 2 dias:
find . -iname '*blah*' -mtime -2
O mesmo que acima, mas exclusivamente arquivos e diretórios (sem links sym, dispositivos...)
find . -iname '*blah*' \( -type d -o -type f \) -mtime -2