Copiar arquivo para o diretório de destino sobrescreve o diretório com o arquivo

3

Um script que é executado no Solaris usa cp para copiar um único arquivo em um diretório de destino.

Ocasionalmente, esse comando cp sobrescreverá esse diretório de destino com o arquivo que está sendo copiado

Por exemplo, ao tentar mover test.txt para o diretório /home/user/Dest :

cp /home/user/Docs/test.txt /home/user/Dest

o diretório Dest inteiro se torna um arquivo de texto com o conteúdo de test.txt , que foi renomeado para Dest .

Eu posso contornar este problema usando: cp /home/user/Docs/test.txt /home/user/Dest/test.txt

O que poderia estar causando esse problema?

    
por John 09.01.2017 / 16:12

3 respostas

5

Eu acho que você deve publicar:

cp /home/user/Docs/test.txt /home/user/Dest/ 

em vez de

cp /home/user/Docs/test.txt /home/user/Dest 

O / no final significa que o destino é um diretório e não um arquivo.

    
por 09.01.2017 / 16:21
3

O que poderia estar causando esse problema?

Dado

cp /home/user/Docs/test.txt /home/user/Dest

se o diretório /home/user/Dest ainda não existir, o arquivo /home/user/Docs/test.txt será copiado para um arquivo chamado /home/user/Dest .

Como @HamdiKadri respondeu, anexando um / ao destino, pois /home/user/Dest/ garante que /home/user/Dest seja tratado como um diretório. Você também pode escrever isso como

cp /home/user/Docs/test.txt /home/user/Dest/.
    
por 10.01.2017 / 13:25
0

O que poderia estar causando esse problema?

cp /home/user/Docs/test.txt /home/user/Dest

Ao fornecer o comando acima, você está copiando o conteúdo do arquivo test.txt no arquivo /home/user/Dest . Se o arquivo não estiver lá, ele criará um novo arquivo chamado Dest e copiará o conteúdo para ele. Para certificar-se de que seu arquivo é copiado no diretório desejado, digite / no final. por exemplo,

cp /home/user/Docs/test.txt /home/user/Dest/

Além disso, se você estiver usando o terminal, use a tecla Tab para evitar esses erros.

    
por 29.05.2017 / 14:44