Como copio uma árvore de diretórios, mas não os arquivos no Linux?


17

Quero copiar cerca de 200 diretórios e subdiretórios de um local para outro, mas não quero copiar os milhares de arquivos desses diretórios. Eu estou no Linux.

Nota: Não tenho espaço suficiente para copiar tudo e excluir todos os arquivos.

Respostas:




5

Outra abordagem é com find e mkdir :

find SOURCE -type d -exec mkdir TARGET/{} \;

Apenas verifique se o TARGET já existe ou use a opção -p do mkdir.


3

Você também pode fazer:

find inputdir -type d | cpio -pdumv destdir

O poder da simplicidade;)


1

Da mesma forma, usando o tar (GNU):

find some/dir -type d -print |
tar --no-recursion -T- -c -p -f- |
(cd another/dir && tar -x -p -f-)

Você realmente não precisa da -print0linha de comando on find ou da linha -0rsync, a menos que tenha nomes de arquivos que contenham caracteres de nova linha (o que é possível, mas altamente improvável). Tar (e rsync e cpio) leem os nomes de arquivos linha por linha; o uso de um terminador NULL é bastante útil xargs, que normalmente lê nomes de arquivos separados por espaços em branco (e, portanto, não lida com arquivos / diretórios com espaços em seus nomes sem -0).



-1
cp -al 

Copiaria todos os arquivos com links físicos. Mesma estrutura, mesmas permissões. (nota: links físicos, para que não haja perda de armazenamento.)


Não é possível criar ligações fortes através das fronteiras do sistema de arquivos
MountainX para Monica Cellio

É verdade, mas que não foi dito que ele estava do outro lado do sistema de arquivos ...
SvennD

-1

ls -d * / @source: encontre. -type d -print0> dirs.txt @destination: xargs -0 mkdir -p

Isso fará com que ambos os comandos usem nulos como separadores em vez de espaços em branco. Observe que a ordem de -type de -print0 é importante!


Isso não está claro e parece incorreto. Parece que @sourcee @destinationsão indicações para o leitor, mas mesmo assim isso não pode funcionar.
precisa saber é o seguinte
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.