Localice rutas de archivo largas en una unidad externa con terminal

3

Necesito mover un gran volumen a un nuevo servidor RAID con formato de PC. Sin embargo, tengo un par de rutas y nombres de archivos que están interrumpiendo este proceso.

Solo me gustaría saber cómo usar el terminal para:

  1. Localice la unidad externa de destino
  2. Luego, 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 '????? ... *'", pero no estoy seguro de cómo orientar mi disco externo.

    
pregunta handpaintedstudio 17.07.2017 - 22:31

2 respuestas

3

La unidad externa está montada en /Volumes , ejecute ls /Volumes para ver el nombre exacto.

Después puedes usar

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

para enumerar todos los archivos donde la ruta y el nombre de archivo combinados tienen más de 130 caracteres.

PS: Esto no funcionará para los nombres de archivo / ruta que contienen nuevas líneas y cosas similares (lo que generalmente no es un problema) PPS: si el nombre de su volumen contiene espacios, debe envolverlo en "" - > find "/Volumes/LaCie - BRYT" -print ...

    
respondido por el nohillside 17.07.2017 - 22:41
4

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 enumerar los discos adjuntos al sistema es diskutil . El comando diskutil list generará todos los discos; simplemente seleccione 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 directorio /Volumes el punto de montaje adecuado.

Suponiendo que quisiera buscar "Mi pasaporte para Mac", ingresaría el comando:

find -E /Volumes/My\ Passport\ for\ Mac/ -type f -regex '.*[^/]{130}'
    
respondido por el Allan 17.07.2017 - 22:41

Lea otras preguntas en las etiquetas