How to Use scp command to Transfer Files

Channel: Linux
Abstract: /home/test/ 6) Scp Command Copy multiple files (one liner) You can copy multiple files at once using the scp command as below without having to execut

SCP is a secure copy program to transfer files or directories between Linux hosts on the network. SCP uses ssh protocol to transfer the data.

You can transfer file or directories as follows:

1) Local host to a remote host.
2) Remote system to your local system.
3) Transfer between two remote host from your local system.

COPY One File to another in C using...

To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video

COPY One File to another in C using fgetc and fputc function

In this tutorial, let's learn some scp commands to transfer files between Linux systems.

1) Copy a file from Remote host to Local using scp command

The following example will copy the file named ‘file_for_copy.txt' from remote system '192.168.1.10' to the current directory (dot indicate current directory) on the local system.

$ scp [email protected]:/home/bobby/file_for_copy.txt .
[email protected]'s password:
file_for_copy.txt 100% 0 0.0KB/s 00:00
bobby@Inspiron-1440:~$ ls
file_for_copy.txt

Copy a directory from Remote host to local using scp command

Directories can be copied with -r option (like most commands like cp), i.e. recursively, so all the content inside the directory can be copied too

$ scp -r [email protected]:/home/bobby/dir_for_copy .
[email protected]'s password:
file1.txt 100% 0 0.0KB/s 00:00
file3.txt 100% 0 0.0KB/s 00:00
file2.txt 100% 0 0.0KB/s 00:00
$ ls -ld dir_for_copy
drwxrwxr-x 2 bobby bobby 4096 2012-11-07 15:11 dir_for_copy
3) Copy a file from Local to Remote host

The -v option of scp prints verbose output, which then performs the scp and also prints debugging messages on their progress. In the following example, -v option is used. Here, a local file is copied to the remote host.

$ scp -v examples.desktop [email protected]:/home/bobby

Similarly, a directory can be copied with -r option. In the following example, a directory named jvm is copied to the remote host.

$ scp -r jvm [email protected]:/tmp
[email protected]'s password:
file2.txt 100% 42 0.0KB/s 00:00
file.txt 100% 39 0.0KB/s 00:01
4) Copying files between two remote hosts from local host

To copy a file between two hosts, ssh service should be running on both the machines. The -3 option will transfer files between two remote hosts via the local host. The following command copies the file /home/bobby/myfile1.txt from the machine 192.168.1.10 to /tmp directory on 192.168.1.20 machine, with verbose output.

$ scp -3 -v [email protected]:/home/bobby/myfile1.txt [email protected]:/tmp

Similarly, directories can be copied between two remote machines with -r option.

$ scp -3 -r [email protected]:/home/bobby/mydir [email protected]:/tmp
[email protected]'s password:
Could not chdir to home directory /home/bobby: No such file or directory
[email protected]'s password:
5) SCP with a Port Number

Suppose, the SSH port of the remote machine is 2200 (rather than the default SSH port 22). Then you need to execute the scp command with -P option as follows:

$ scp –P 2200 -r test_folder [email protected]:/home/test/
6) Scp Command Copy multiple files (one liner)

You can copy multiple files at once using the scp command as below without having to execute it several times

$ scp file1.txt file2.txt file3.txt [email protected]:/home/bobby
7) Copy files without changing the timestamp of the files

Sometime you may want to preserve the timestamp of the original files. But when you scp them to a different location in the normal way, the timestamp modifies. But with -p option you can copy the files with the same original timestamps, as below.

$ scp -p file1.txt [email protected]:/home/bobby
8) Fast SCP copy files

By default Scp use AES-128 to encrypt data as the security of this is high. But the downside of this is it slow down the file copy process a bit. But if you want to securely copy files faster, you can use Blowfish or RC4 as below.

$ scp -c blowfish [email protected]:/home/user/file .
$ scp -c arcfour [email protected]:/home/user/file .
9) Scp Command with increased security

If it the security you look for, you can copy files in a more secure way using 3DES. But this will slow down the process a bit more.

$ scp -c 3des [email protected]:/home/user/file .
10) Scp Command with limited bandwidth

When using the scp command you can limit your bandwidth as below (here bandwidth is specified in Kbit/s).

$ scp -l50 [email protected]:/home/user/file .
11) Scp Command with IPV4 and IPV6

If needed, you can force the scp command to use IPV4 or IPV6 as below

$ scp -4 [email protected]:/home/user/file .
$ scp -6 [email protected]:/home/user/file .
Conclusion

I hope you enjoyed reading this tutorial on how to use scp command with examples. I would recommend referring scp command man page for more information.

Ref From: linoxide

Related articles