Copiando um diretório de origem usando o comando cp -rsf quando o diretório de destino existe

0

Em Centos 7 , quando eu uso o comando:

 cp -rsf /path/of/source /path/of/target

Quando o diretório de destino existe, os arquivos vão para /path/of/target/source .

Como posso evitar isso?

EDITAR:

  1. origem e destino são diretórios.
  2. Os links simbólicos atendem às minhas necessidades de ambiente. Eu preciso que eles sejam symlink para economizar armazenamento.

Por exemplo:

  1. mkdir /home/admin/test; mkdir /home/admin/test/1; touch /home/admin/test/1/1.txt;
  2. mkdir /home/admin/test2; mkdir /home/admin/test2/1; touch /home/admin/test2/1/1.txt;
  3. cp -rsf /home/admin/test/1 /home/admin/test2/1
  4. ls /home/admin/test2/1

o resultado é:

drwxrwxr-x 2 admin admin 4096 Sep 16 15:57 1 -rw-rw-r-- 1 admin admin 0 Sep 16 15:56 1.txt

Eu queria esse resultado:

lrwxrwxrwx 1 admin admin 24 Sep 16 16:03 1.txt -> /home/admin/test/1/1.txt

Isso significa que o próprio diretório de origem é copiado dentro do destino, mas eu queria que seu conteúdo fosse copiado (assim como quando o diretório de destino não existe)

    
por Ali Sh 16.09.2018 / 13:06

1 resposta

0

A solução é adicionar -T de acordo com o homem

-T, --no-target-directory treat DEST as a normal file

cp -rsfT /path/of/source /path/of/target

se o diretório de destino existir, ele copiará links simbólicos nele. O benefício é que, se houver outros arquivos no destino, eles permanecerão inalterados.

    
por 16.09.2018 / 13:48