
Ao pesquisar nas configurações avançadas do Dropbox, perdi uma pasta. Só descobri isso cerca de um mês depois. Consegui recuperar esta pasta do Dropbox, mas a estrutura de arquivos das subpastas mudou drasticamente. A pasta atual agora contém duas versões de cada subpasta original. Atualmente está assim:
folder
/folder1
/folder11
/folder111
/Folder111
/file1111
/file1112
/file1113
/Folder11
/file111
/file112
/folder12
/Folder12
/folder2
/folder3
Portanto, tenho subpastas em minúsculas e subpastas BumpyCase. As subpastas minúsculas contêm subpastas e as subpastas BumpyCase contêm arquivos. As subsubpastas novamente contêm uma versão em minúsculas e uma versão BumpyCase de suas respectivas subpastas. E essa história se estende por vários níveis de profundidade.
Felizmente não há duplicação de arquivos, apenas de pastas (mesmas letras, mas maiúsculas e minúsculas diferentes). Portanto, em cada nível, preciso mesclar pastas que diferem apenas na caixa dos nomes. E para fazer isso corretamente eu preciso começar no nível mais profundo e trabalhar até a pasta de nível superior.
Quero que tudo vá para os diretórios do CamelCase.
A partição onde estão os dados é uma partição Ext4. Tenho acesso a várias partições NTFS.
Existe um comando/ferramenta útil do Linux ou alguém com uma idéia de um script que possa fazer isso? Já estou muito feliz por ter recuperado minhas coisas, mas a estrutura atual é um grande transtorno.
Responder1
Eu tive o mesmo problema e encontrei uma solução prática.
Basta acessar sua conta do Dropbox e renomear suas pastas raiz com nomes em letras minúsculas e baixá-las novamente!
Eu leioem outro lugarque o Dropbox tem problemas com pastas e insensibilidade a maiúsculas e minúsculas. Não tenho certeza se ter nomes de pastas em letras maiúsculas foi o único problema. Tive outros problemas que podem afetar o sistema de arquivos do Dropbox além das pastas com letras maiúsculas, como compartilhar as pastas de um Mac e tentar baixá-las em uma máquina Ubuntu. Mas o problema que encontrei foi semelhante ao relatado aqui. Todas as pastas foram vistas corretamente no servidor web, mas quando baixadas todas as pastas começando com letras maiúsculas foram duplicadas e algum conteúdo foi para as pastas com letras maiúsculas e algum conteúdo para as pastas com letras minúsculas, então eu estava procurando uma maneira de mesclar essas pastas.
Responder2
Todos os comandos começam no diretório de nível superior e assumem que você não possui novas linhas nos nomes dos arquivos. Presumo ferramentas GNU (Linux ou Cygwin). Atenção, tudo isso é código não testado, digitado diretamente no navegador.
É bastante fácil mesclar todos os diretórios em letras minúsculas. Uma abordagem é recorrer a todos os diretórios e mesclá-los em suas contrapartes em letras minúsculas. Faça primeiro a profundidade do percurso para que, ao mesclar dois diretórios, seu conteúdo já esteja 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
' {} \;
Se você deseja mesclar de letras minúsculas para maiúsculas e minúsculas, você precisa determinar o diretório de letras minúsculas correspondente a cada diretório em letras minúsculas. O trecho a seguir escolhe um diretório arbitrário com maiúsculas e minúsculas, se houver mais de um.
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
' {} \;