Necesito encontrar una carpeta anidada en otra carpeta.
ejemplo:
/Volumes/"4T Virtual Machines"/outerfolder/innerfolder
mac $ pwd
/Volumes/4T Virtual Machines
mac $ ls -lR outerfolder/
total 0
-rw-r--r-- 1 mac staff 0B Aug 28 18:02 file1
-rw-r--r-- 1 mac staff 0B Aug 28 18:02 file2
drwxr-xr-x 5 mac staff 170B Aug 28 18:04 innerfolder/
drwxr-xr-x 3 mac staff 102B Aug 28 18:07 otherfolder/
outerfolder//innerfolder:
total 0
-rw-r--r-- 1 mac staff 0B Aug 28 18:04 aaa
-rw-r--r-- 1 mac staff 0B Aug 28 18:04 bbb
-rw-r--r-- 1 mac staff 0B Aug 28 18:04 ccc
outerfolder//otherfolder:
total 0
-rw-r--r-- 1 mac staff 0B Aug 28 18:07 justskip
mac $
Tenemos dos casos: la carpeta externa está en root de la unidad externa y la carpeta externa no está en root de la unidad externa. Debería poder modificar una solución por la otra.
Estoy escribiendo en applescript en macOS yosemite o posterior, pero potencialmente invocando un comando Unix desde applescript. Así que la solución puede estar en todo applescript o comando Unix llamado desde applescript. El comando Unix enfoque
Aquí está el comando Unix que tengo para encontrar la carpeta externa:
find /Volumes -type d -maxdepth 1 ! -name Volumes -exec find {} -type d -maxdepth 1 -name "Virtual Box" \;
He cansado un tercer nested find, pero ha dado error
find /Volumes -type d -maxdepth 1 ! -name Volumes -exec find {} -type d -maxdepth 1 -name "Virtual Box" -exec find {} -type d -maxdepth 1 ! -name inner \;
find: -exec: no terminating ";" or "+"
find: -exec: no terminating ";" or "+"
find: -exec: no terminating ";" or "+"
mac RC=1 $
0 votos
Así que lo que básicamente quieres hacer es encontrar una carpeta
innerfolder
que está directamente dentro deouterfolder
¿verdad?0 votos
Sí. Pero no en la unidad de arranque.
0 votos
¿Qué te hace pensar que importa en qué unidad esté? El sistema de ficheros en los sistemas Unix tiene una root común para todos los volúmenes/unidades de disco
0 votos
Porque la especificación dice que los directorios de archivos estarán en una unidad externa. Supongo que en la realidad no hay ninguna diferencia.