Qual é a diferença entre scp e cp?

9

Eu sou realmente novo na linha de comando e no Ubuntu e aprendi recentemente que existe o scpcomando e o cpcomando. Tentei usar um scpcomando para mover um diretório do ponto A para o ponto B, mas não funcionou. No entanto, quando eu usei cp, funcionou muito bem.

Qual é a diferença entre os dois e como determino quando usar um sobre o outro?

BDD
fonte
O que você quer dizer quando diz que não funcionou? O scp pode ser usado para copiar arquivos / diretórios da origem para o destino. A origem ou o destino ou ambos podem ser locais ou remotos.
Mahesh

Respostas:

18

TL; DR Leia as páginas de manual:

man scp
man cp

De man scp

NAME
     scp — secure copy (remote file copy program)

SYNOPSIS
     scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 ...
         [[user@]host2:]file2

DESCRIPTION
     scp copies files between hosts on a network.  It uses ssh(1) for data transfer, and uses the same authentication and provides the same security
     as ssh(1).  scp will ask for passwords or passphrases if they are needed for authentication.

     File names may contain a user and host specification to indicate that the file is to be copied to/from that host.  Local file names can be made
     explicit using absolute or relative pathnames to avoid scp treating file names containing ‘:’ as host specifiers.  Copies between two remote
     hosts are also permitted.

de man cp

NAME
       cp - copy files and directories

SYNOPSIS
       cp [OPTION]... [-T] SOURCE DEST
       cp [OPTION]... SOURCE... DIRECTORY
       cp [OPTION]... -t DIRECTORY SOURCE...

DESCRIPTION
       Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.

       Mandatory arguments to long options are mandatory for short options too.
AB
fonte
5
Bem. Eu me sinto estúpido. Eu esqueci completamente as páginas de manual. Obrigado!
BDD 08/07
15

scpé realmente para cópia remota via SSH. Por exemplo:

scp /path/to/local/file user@server:/path/to/target/dir/
Oli
fonte
7

scp ou Secure Copy é usado principalmente para copiar entre um host local e um host remoto, ou dois hosts remotos, via ssh

O cpcomando é para copiar arquivos localmente, ou seja, dentro do sistema do seu host.

As páginas de manual que o muru vinculou nos comentários devem ajudá-lo a entender o uso, mas também existem muitos tutoriais sobre esse assunto da Internet.

Arronical
fonte
3

Você também deve aprender que existe um mancomando. Tente! man cp, man scp, man man.

man cp Inicia:

    NAME
       cp - copy files and directories

SYNOPSIS
       cp [OPTION]... [-T] SOURCE DEST
       cp [OPTION]... SOURCE... DIRECTORY
       cp [OPTION]... -t DIRECTORY SOURCE...

DESCRIPTION
       Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.

e man scpcomeça com:

    NAME
     scp — secure copy (remote file copy program)

SYNOPSIS
     scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 ... [[user@]host2:]file2

DESCRIPTION
     scp copies files between hosts on a network.  It uses ssh(1) for data transfer, and uses the same authentication and provides the same security as     ssh(1).  Unlike rcp(1), scp will
     ask for passwords or passphrases if they are needed for authentication.
waltinator
fonte
-2

Se você tem espaços nos nomes de arquivos, o scp lida com eles mais bem do que o cp, então eu o uso mesmo para copiar na minha máquina local por esse motivo.

Tehmorp
fonte