Existe uma maneira de copiar um diretório inteiro, mas apenas as pastas? Eu tenho um arquivo corrompido em algum lugar do meu diretório que está causando falhas nos meus discos rígidos.
Então, em vez de copiar o arquivo corrompido para outro disco rígido, eu queria apenas copiar as pastas, porque tenho scripts que pesquisam centenas de pastas e não quero criar manualmente todas elas.
Pesquisei o manual do cp, mas não consegui ver nada (posso ter perdido)
Digamos que eu tenha essa estrutura no disco rígido com falha:
dir1
files
dir2
files
files
dir4
dir3
files
Tudo o que eu quero é a estrutura de diretórios, nenhum arquivo.
Então, eu terminaria com o novo HDD:
dir1
dir2
dir4
dir3
Esperando que alguém conheça alguns truques!
rsync
copie a estrutura de diretórios E mantenha as permissões e os atributos] ( stackoverflow.com/a/9242883/52074 ). O uso da planíciemkdir -p
não preserva permissões e atributos .Respostas:
Se você deseja espelhar um esqueleto de diretório e copiar nenhum arquivo:
O que está acontecendo aqui:
-links 2
para encontrar os diretórios mais profundos possíveis .mkdir -p
fará todos os diretórios ausentes ao longo do caminho.Eu fiz isso dessa maneira, e não
find -type d -exec mkdir -p "/path/to/backup/{}" \;
porque isso interrompe uma quantidade enorme demkdir
chamadas. Podemos provar isso rapidamente com um pequeno teste. Aqui está a árvore de teste seguida pelo que corri para comparar os dois comandos:E isso só vai melhorar em uma solução de palavras reais com milhares de diretórios.
fonte
find
usa o diretório de trabalho atual como ponto de partida. Se você deseja usar outro caminho, use a sintaxe:find /path/to/search/ -type.....
find -type d -exec mkdir -p "/media/jinglez/TVSeries/TV Series"/{}" \;
e tudo deve ficar bem? Parece estar demorando um pouco: /find -type d -links 2 -exec mkdir -p "/media/jinglez/TVSeries/TV Series/{}" \;
Muito fácil de fazer com o linux python:
Como script, isso pode ser reescrito da seguinte maneira:
fonte