¿Cuál es la diferencia entre scp y cp?

9

Soy realmente nuevo en la línea de comandos y Ubuntu y recientemente aprendí que existe el scpcomando y el cpcomando. Traté de usar un scpcomando para mover un directorio del Punto A al Punto B, pero no funcionó. Sin embargo, cuando lo usé cp, funcionó bien.

¿Cuál es la diferencia entre los dos y cómo determino cuándo usar uno sobre el otro?

BDD
fuente
¿Qué quieres decir cuando dices que no funcionó? scp se puede usar para copiar archivos / directorios desde el origen al destino. El origen o el destino o ambos pueden ser locales o remotos.
Mahesh

Respuestas:

18

TL; DR Lea las páginas del manual:

man scp
man cp

Desde 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.

desde 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
fuente
55
Bien. Me siento tonto. Me olvidé por completo de las páginas del manual. ¡Gracias!
BDD
15

scpes realmente para copia remota a través de SSH. P.ej:

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

scp o Secure Copy se usa principalmente para copiar entre un host local y un host remoto, o dos hosts remotos, a través de ssh

El cpcomando es para copiar archivos localmente, es decir, dentro del sistema de su host.

Las páginas de manual que Muru ha vinculado en los comentarios deberían ayudarlo a comprender el uso, pero también hay muchos tutoriales en Internet.

Arronico
fuente
3

También debe aprender que hay un mancomando. ¡Intentalo! man cp, man scp, man man.

man cp que empieza:

    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.

y man scpcomienza con:

    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
fuente
-2

Si tiene espacios en los nombres de archivo, scp los maneja mejor que cp, por lo que a menudo lo uso incluso para copiar en mi máquina local por ese motivo.

Tehmorp
fuente