
Al buscar en la configuración avanzada de Dropbox, perdí una carpeta. Sólo descubrí esto aproximadamente un mes después. Logré recuperar esta carpeta de Dropbox, sin embargo, la estructura de archivos de las subcarpetas ha cambiado drásticamente. La carpeta actual ahora contiene dos versiones de cada subcarpeta original. Actualmente se ve así:
folder
/folder1
/folder11
/folder111
/Folder111
/file1111
/file1112
/file1113
/Folder11
/file111
/file112
/folder12
/Folder12
/folder2
/folder3
Entonces tengo subcarpetas en minúsculas y tengo subcarpetas de BumpyCase. Las subcarpetas en minúsculas contienen subsubcarpetas y las subcarpetas de BumpyCase contienen archivos. Las subsubcarpetas nuevamente contienen una versión en minúsculas y una versión BumpyCase de sus respectivas subcarpetas. Y esta historia continúa en varios niveles de profundidad.
Afortunadamente no hay duplicación en archivos, sólo en carpetas (mismas letras pero diferente mayúscula). Entonces, en cada nivel necesito fusionar carpetas que difieren solo en las mayúsculas y minúsculas de los nombres. Y para hacer esto correctamente necesito comenzar en el nivel más profundo y avanzar hasta la carpeta del nivel superior.
Quiero que todo vaya a los directorios de CamelCase.
La partición donde están los datos es una partición Ext4. Tengo acceso a varias particiones NTFS.
¿Existe algún comando/herramienta de Linux útil o alguien con una idea para un script que pueda lograr esto? Ya estoy muy feliz de haber recuperado mis cosas, pero la estructura actual es un gran inconveniente.
Respuesta1
Tuve el mismo problema y encontré una solución práctica.
¡Simplemente vaya a su cuenta de Dropbox, cambie el nombre de sus carpetas raíz con nombres en minúsculas y descárguelas nuevamente!
Yo leoen otra parteque Dropbox tiene un problema con las carpetas y la distinción entre mayúsculas y minúsculas. No estoy seguro de si tener los nombres de las carpetas en mayúsculas fue el único problema. Tuve otros problemas que pueden afectar el sistema de archivos de Dropbox más allá de las carpetas con letras mayúsculas, como compartir las carpetas desde una Mac e intentar descargarlas en una máquina Ubuntu. Pero el problema que encontré fue similar al que se informa aquí. Todas las carpetas se vieron correctamente en el servidor web, pero cuando se descargaron, todas las carpetas que comenzaban con letras mayúsculas se duplicaron y parte del contenido fue a las carpetas con mayúsculas y parte del contenido a las carpetas con minúsculas, así que estaba buscando una manera de fusionarlas. carpetas.
Respuesta2
Todos los comandos comienzan desde el directorio de nivel superior y asumen que no hay líneas nuevas en los nombres de los archivos. Asumo herramientas GNU (Linux o Cygwin). Advertencia, todo esto es código no probado, escrito directamente en el navegador.
Es bastante fácil fusionar todos los directorios en minúsculas. Un enfoque es recurrir a todos los directorios y fusionarlos en su contraparte en minúsculas. Primero realice la profundidad transversal para que cuando combine dos directorios, su contenido ya esté normalizado.
find . -depth -name '*[[:upper:]]*' -type d -execdir sh -c '
source=$0
target=$(echo "$source" | tr "[:upper:]" "[:lower:]")
if [ "$source" != "$target" ]; then # need to rename or merge
if [ -d "$target" ]; then
# merge $source (mixed- or uppercase) into $target (lowercase)
find "$source" -mindepth 1 -maxdepth 1 -exec mv -bt "$target" {} +
rmdir "$source"
else
mv "$source" "$target"
fi
fi
' {} \;
Si desea fusionar de minúsculas a mayúsculas mixtas, debe determinar el directorio de mayúsculas y minúsculas correspondiente a cada directorio en minúsculas. El siguiente fragmento selecciona un directorio arbitrario de mayúsculas y minúsculas si hay más de uno.
find . -depth ! -name '*[[:upper:]]*' -type d -execdir sh -c '
source=$0
target=$(find . -maxdepth 1 -iname "$source" -not -name "$source" -print -quit)
if [ -n "$target" ]; then …
fi
' {} \;