5 votos

Localizar rutas largas de archivos en la unidad externa con el terminal

Necesito mover un gran volumen a un nuevo servidor raid que está formateado en PC. Sin embargo tengo un par de rutas y nombres de archivo que están interrumpiendo este proceso.

Sólo me gustaría saber cómo utilizar el terminal para:

  1. Localice la unidad externa deseada
  2. A continuación, busque en esa unidad las rutas/archivos que tengan más de 130 caracteres

¿Alguien puede ayudar?

Sé cómo buscar rutas largas encontrar " . -type f -name '?????...*' ", sólo que no estoy seguro de cómo apuntar a mi unidad externa.

4voto

Douglas Puntos 10417

El siguiente comando imprimirá todos los archivos que tengan más de 130 caracteres

find -E . -type f -regex '.*[^/]{130}'

El comando de Terminal (bash) para listar los discos conectados al sistema es diskutil . El comando diskutil list mostrará todos los discos - sólo tiene que seleccionar el identificador que coincida con su dispositivo externo.

Por ejemplo:

/dev/disk3 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk3
   1:                        EFI EFI                     209.7 MB   disk3s1
   2:                  Apple_HFS FreeAgent Go            499.8 GB   disk3s2
/dev/disk4 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk4
   1:                        EFI EFI                     209.7 MB   disk4s1
   2:                  Apple_HFS My Passport for Mac     999.8 GB   disk4s2

disk0 , disk1 y disk2 están en un volumen CoreStorage. disk3 y disk4 son mis controladores externos

Para acceder a la unidad (suponiendo que esté montada), busque en el /Volumes para el punto de montaje apropiado.

Suponiendo que quiera buscar "My Passport for Mac", deberá introducir el comando

find -E /Volumes/My\ Passport\ for\ Mac/ -type f -regex '.*[^/]{130}'

4voto

La unidad externa se monta bajo /Volumes , corre ls /Volumes para ver el nombre exacto.

Después puedes utilizar

find /Volumes/NAME-FROM-ABOVE -print |
    while read line; do [[ ${#line} -gt 130 ]] && echo $line; done

para listar todos los archivos en los que la ruta y el nombre del archivo combinados tienen más de 130 caracteres.

P.D.: Esto no funcionará con nombres de archivos/rutas que contengan nuevas líneas y cosas similares (lo que normalmente no es un problema) PPS: Si el nombre de su volumen contiene espacios, necesita envolverlo en "" -> find "/Volumes/LaCie - BRYT" -print ...

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