Hay parámetros de find
comando para buscar archivos y directorios respectivamente -f
y -d
, pero quiero evitar escribir dos find
comandos y &&
/o ||
entre ellos.
Quiero encontrar un archivo o directorio (lo que se encuentre condicionalmente) en un comando, ¿se puede -d
realizar -f
una operación OR?
Respuesta1
Utilice la -o
opción.
Desde elencontrarpágina de manual (bajo el encabezado OPERADORES):
expr1 -o expr2 Or; expr2 is not evaluated if expr1 is true.
Respuesta2
Si no especifica -f
ni -d
, find
le mostrará todos los tipos de inodos (archivos, directorios, dispositivos, enlaces, etc.). Si solo desea archivos y directorios, utilice -o
y posiblemente utilice paréntesis de escape si va a utilizar otro tipo de condiciones.
Por ejemplo, todos los archivos, directorios, enlaces, etc. que se han modificado/creado en los últimos 2 días:
find . -iname '*blah*' -mtime -2
Igual que arriba, pero archivos y directorio exclusivamente (sin enlaces simbólicos, dispositivos...)
find . -iname '*blah*' \( -type d -o -type f \) -mtime -2