5 votos

Intentando copiar el archivo de un recurso compartido de red a otro sin tener en cuenta el carácter tilde

He estado tratando de copiar un archivo de volumen de un recurso compartido de red a otro. Debido a que la mayoría de estos archivos son los archivos de Mac, estoy usando Mac Terminal para hacerlo. He probado todas las combinaciones de cp, rsync, and ditto que me podía venir.

El problema radica en el hecho de que muchos de estos archivos tienen un nombre similar y de vez en cuando voy a venir a través de uno que tiene un carácter de tilde en el nombre de archivo. Dependiendo de lo que la variación de cp or rsync comando puedo utilizar, cuando se trata a través de este o falla, que indica que el archivo ya existe, o, omite el archivo con la tilde todos juntos y continúa con el proceso.

Por ejemplo: "28910 BP Umba Espectáculo.SENTARSE" es tratada como idéntico a "28910B~1.SIÉNTATE" y por lo tanto no copiar a la nueva ubicación del archivo.

Cualquier ayuda es muy apreciada, gracias de antemano.

3voto

Douglas Puntos10417

El nombre de archivo 28910B~1.SIT parece un MS-DOS abreviado nombre de archivo que tiene más de 8.3 caracteres (nombres de archivo largos).

Es importante tener en cuenta que a partir de Windows 2000, el nombre largo y la reducción de nombres 8.3 fueron retenidos (el archivo tenido ambos nombres)

...cuando una aplicación se guarda un archivo en un equipo que ejecuta Windows 2000, tanto el nombre de 8.3 archivo y nombre de archivo largos son retenidos.

Por ejemplo, 28910 BP Umba Show.SIT automáticamente abreviado, 28910B~1.SIT y los duplicados se incrementa (28910B~2.SIT, 28910B~3.SIT, 28910B~4.SIT, etc.) Usted puede leer más acerca de esta convención de nomenclatura en Microsoft Tech Red

Hay una buena probabilidad de que una víctima de uno de sus archivos, pero la única manera de saber con certeza es para abrir y verificar.

Desde el comentario:

De cualquier manera, necesito un poco de magia que va a copiar el archivo y a ignorar la tilde.

No puede omitir la tilde - está ahí, y tiene que ser tratado con; tan lejos como macOS, los dos archivos tienen el mismo nombre (porque sí).

Para copiar ambos archivos pero no sobrescribir el que está en la carpeta de destino, usted puede rápidamente test en su comando para ver si el archivo ya existe en un for/bucle do:

for file in /source/directory; do $time=date +%s; if [[ -f /target/directory/$file ]]; then cp $file ${file}-${time}; else cp $file /target/directory/$file; fi; done

Este comando va a analizar a través de su directorio de origen, comprobar si existe el archivo en el directorio de destino, si lo hace va a copiar el archivo en anexando el tiempo actual en segundos (para asegurar que no hay varios incautos); si no engañar existe, sólo se copia el archivo.

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: