Tengo un gran árbol de archivos. Algunos archivos tienen el mismo nombre pero en diferentes casos, por ejemplo, some_code.c
y Some_Code.c
.
Entonces, cuando intento copiarlo a un sistema de archivos NTFS / FAT, me pregunta si quiero reemplazarlo o omitirlo.
¿Hay alguna forma de cambiar automáticamente el nombre de dichos archivos, por ejemplo, agregando (1)
al nombre del archivo de conflicto (como lo hace Windows 7)?
sudo fdisk -l /dev/sda
), y lo hicetouch foo; touch Foo
y terminé con 2 archivosfoo
yFoo
. Pero no tengo curiosidad de reiniciar en Windows, para ver cómo se ven allí. ¿Migrar es solo un problema de FAT? Ah, tengo una memoria USB con FAT y podría crear un sistema FAT dentro de un archivo ... ... un momento, por favor. :)Respuestas:
Muchas herramientas de GNU como
cp
,mv
ytar
admiten la creación de archivos de copia de seguridad cuando existe el objetivo. Es decir, cuando se copiafoo
abar
si ya existe un archivo llamadobar
, el existentebar
pasará a llamarse, y después de la copiabar
contendrá el contenido defoo
. Por defecto,bar
se renombra abar~
, pero el comportamiento se puede modificar:Existen otras variantes, como crear copias de seguridad numeradas solo cuando ya existe una. Consulte el manual de coreutils para más detalles.
fuente
brew install coreutils
y luego use el comando en sugcp
lugar.Lo intenté
para encontrar posibles candidatos, y apareció la copia.
muestra una opción prometedora,
-D clash-option
¿no es genial? Pero no es tan genial, no se describe. Pero hay algunos consejos para mtools.dvi, que busqué en mi sistema, sin éxito, y a través de google, sin éxito, pero luego, con google, busqué directamentemcopy clash-option
y encontré este sitio .Hice una prueba corta
a las pruebas de autorename y targetdir
a
: en lugar de autorenaming, me pidió que ignorara o anulara cada archivo, ese estúpido s ....Mi versión es
mtools-4.0.10
y la página de ayuda es de 1996 - 15 años. ¿Deberíamos realmente perder algunas características, mientras tanto?Yo dividiría el trabajo en dos pasos:
find
y ejecute ese script para cada archivo que desee copiar.¿Ayudamos en este enfoque? :)
Aquí hay una secuencia de comandos, para autodenominar archivos:
y esta es mi invocación de prueba:
Nota: -maxdepth, -name y -type donde se usa para restringir dramáticamente el número de archivos afectados. No probé el script para estructuras de archivos más profundas, ni para espacios en blanco en los nombres de archivo y otros caracteres funky como salto de línea, salto de página, etc.
Solía .1 porque no causa problemas en la mayoría de los comandos, mientras que a (y a) a menudo necesitan enmascararse.
fuente
No con GNU
cp
, al menos.Se recomienda encarecidamente que no tenga nombres de archivo duplicados (ignorando las mayúsculas y minúsculas), solo le causarán un mundo de dolor. Encuentre una lista de tales duplicados usando
Luego, cambie manualmente el nombre de uno de los archivos para cada línea si sale. Intenta evitar crear duplicados en el futuro.
fuente