2 votos

MacOS (¿y BSD?): ¿Por qué "ls -R" desde el directorio root no lista los archivos de un subdirectorio?

MacOS 10.15.7 (Catalina)

cd /usr/bin
ls grep
grep

Sin embargo...

cd /
ls -R grep
ls: grep: No such file or directory

¿Por qué? ¿Solución?

Si utilizo ls -R / | grep grep ese enfoque de "fuerza bruta" funciona, pero no es lo ideal.

3voto

yoliho Puntos 340

Ls lista las cosas que se pasan como argumentos no opcionales (es decir, las cosas que no empiezan por - )

De la página man de ls

Para cada operando que nombra un archivo de un tipo distinto al de directorio, ls muestra su nombre así como cualquier información asociada solicitada. En cada operando que nombra un archivo de tipo directorio, ls muestra los nombres de archivos contenidos en ese directorio, así como cualquier información asociada solicitada. información asociada solicitada.

La opción -R recorre los directorios que se pasan a ls. En este caso está buscando un directorio o archivo llamado grep - y si hay un directorio llamado grep en root, listará todos los archivos y directorios bajo grep. (Habrá problemas de permisos, así que no es tan limpio como eso)

Lo que intentas hacer es encontrar el archivo grep cuando no sabes en qué directorio está.

El comando ls para hacerlo es el que muestra ls -R / que mira todos los archivos y directorios bajo root. Sin embargo, muestra un montón y por lo que tiene que filtrar que grep hará parcialmente, podría haber falsos positivos para los archivos como fgrep

Un comando Unix más sencillo para hacer lo que quieres es find

Así que lo que se busca es

find / -name grep

En mi sistema Monterey me aparecen muchos directorios en los que no puedo buscar por ejemplo find: /usr/sbin/authserver: Permiso denegado

Pero obtengo la salida correspondiente

/usr/bin/grep

Los errores se pueden ocultar simplemente mirando a stdout y enviando stderr a /dev/null

find / -name grep 2>/dev/null

dando

/usr/bin/grep

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X