Code360 powered by Coding Ninjas X Naukri.com. Code360 powered by Coding Ninjas X Naukri.com
Table of contents
1.
Introduction
2.
What is SCP command in Linux?
2.1.
Syntax
2.2.
OPTIONS in SCP Command in Linux
3.
Common SCP Commands
3.1.
Copy Files From the Local Host to Remote Server
3.2.
Copy a File from a Remote Server to the Local Host
3.3.
Copy a File from One Remote Server to Another
3.4.
Copy files within the same machine
4.
Advantages of using the SCP command in LINUX:
5.
Frequently Asked Questions
5.1.
What is scp command in Linux?
5.2.
How to use scp command in SSH?
5.3.
Why do we use scp command?
5.4.
How to enable scp in Linux?
6.
Conclusion
Last Updated: Mar 27, 2024
Easy

SCP command in Linux

Master Python: Predicting weather forecasts
Speaker
Ashwin Goyal
Product Manager @

Introduction

SCP (Secure copy Protocol) command in Linux systems is generally used to copy file(s) between servers in a secure way. The SCP command in Linux is critical because it transfers data more securely and privately. Data sharing is core to properly working any system, so a command like scp allows us to do this process more efficiently and securely.

SCP command in linux

We can share data between various entities and have multiple services; we have Bluetooth and other software for our mobiles and pcs. Similarly, SCP is a way to share data in an operating system like Linux. Let's see how it helps us out.

What is SCP command in Linux?

The SCP  or Secure Copy Protocol in Linux is a secure and efficient command to share data and files in an operating system. It’s similar to the simple copy command we often use but is much more. The protocol ensures the transmission of files is encrypted to prevent anyone with suspicious intentions from this shared data over the internet. SCP uses encryption over an SSH or (Secure Shell ) connection to encrypt the data we want to share to prevent misuse. It is used to copy files and directories between hosts on a network.

Syntax

The basic syntax for an SCP command expression in Linux is as follows:

scp [OPTIONS] [[user@]src_host:]file1 [[user@]dest_host:]file2


Let's breakdown this command:

SCP: This is the command itself
Options Options flag that modifies the behavior of the command
Src_host where the file is hosted. The source can either be a client or server, depending on the origin of the file.
Dest_host the target location where you want to copy the file
file1 The file you want to copy
file 2 The final copied file with all the contents copied from the source file

Let's take a quick example to understand it more thoroughly:

scp -C share.txt user@remotehost:/home/user/desktop/myfolder


Now, this command copies the share.txt file from the local host and copies it into the home/user/desktop/myfolder directory. Here we have used the -C options tag as well, which helps in compressing all files that can be compressed; this helps in saving bandwidth while transferring the file.

As seen above, we encountered an Options tag in the SCP command, so now, let's discuss them further.

OPTIONS in SCP Command in Linux

Options are crucial because they are part of the command that can modify the request according to different needs as per the situation we face; for example, in the above case, we used a C options tag to compress the files to make file transfer easier.

There are many options offered that we can use; let’s look at the most useful ones:

Option Usage
-P port  Specifies the port number for the SSH connection. SCP uses port 22 by default, but you can use this option to specify a different port.
-r This option is used for Recursively copying directories.
-p:  Preserves the copied files and directories' modification times, access times, and permissions.
-q Quiet mode. Suppresses the progress meter and non-error messages.
-C  Enables compression during the transfer to reduce bandwidth usage.
-i identity_file Specifies the identity file (private key) for the SSH connection. This allows you to use a specific private key instead of the default.
-v Verbose mode. Prints detailed debugging information during the transfer.
-c This option is used for selecting a cipher to transfer data.
Get the tech career you deserve, faster!
Connect with our expert counsellors to understand how to hack your way to success
User rating 4.7/5
1:1 doubt support
95% placement record
Akash Pal
Senior Software Engineer
326% Hike After Job Bootcamp
Himanshu Gusain
Programmer Analyst
32 LPA After Job Bootcamp
After Job
Bootcamp

Common SCP Commands

There are various use cases for the SCP command; let's look at some of them in detail:

Copy Files From the Local Host to Remote Server

We can use the SCP command to copy some files from our local system to some remote server over a network. This is essential as it helps keep the data secure in case of loss and backup.

In this use case, you must specify the file you want to share and the destination address where you want the file to go.

For example:

scp Desktop/example.txt root@137.182.141.28:/home/remote_dir


This takes the example_text file from the desktop folder of the local system

and copies it into the home/remote_dir at the server running at Ip address 137.182.141.28 with the username root.

Copy a File from a Remote Server to the Local Host

We can copy a file stored at a remote server into the local system using the SCP command. This can be useful when you want to change some file saved in some remote repo and then push it back to the server with the committed changes.

For example:

scp 146.182.141.21:/home/remote_dir/sample_example.txt home/Desktop


This SCP command copies the example text file from the home/remote_dir saved at the remote server running at the IP address 146.182.141.21 to the local host in the Desktop folder. This command finishes executing; then, the example_text file will be visible on the desktop of the local system.

Copy a File from One Remote Server to Another

We can transfer files and repositories from one remote server to another using SCP.

This may help make multiple copies or instances of the same file without referring to the local host.

For example:

scp root@147.182.143.27:/home/remote_dir/example.txt sid@146.153.129.25:home/Desktop


This command will copy the example.txt file from the root running at IP 147.182.143.27 and put this copy at the server running at 146.153.129.25 username sid into the home/desktop folder.

Copy files within the same machine

We can also use SCP to copy files within the same system securely.

For example:

scp /home/user/example.txt /home/user/desktop/


This command copies the example.txt file from the home/user folder into the home/user/desktop directory.

Advantages of using the SCP command in LINUX:

There are many advantages of using the SCP command in Linux; let’s look at some of them:

  • Security: SCP uses SSH protocol, ensuring the data is encrypted during transfer, making it a more secure form of sharing data.
     
  • Cross-platform Compatibility: SCP is available on various platforms, including Linux, macOS, and Windows (in some cases). This allows cross-operating system file sharing easily.
     
  • Network Flexibility: SCP can operate on local networks and the internet. So you can share files to a machine within your local network or even to a remotely located one.
     
  • Preservation of File Attributes: With SCP, you can preserve essential file attributes like timestamps and permissions. This helps maintain the integrity of the file.
     
  • Authentication: SCP uses SSH key-based authentication, which helps you establish a reliable connection without lying on passwords.
     
  • Integration with other Linux commands: SCP can be easily incorporated into other Linux commands and scripts, making it a valuable tool for system administrators and developers who want to transfer files in an automated manner.

Frequently Asked Questions

What is scp command in Linux?

The SCP command in Linux allows users to copy, upload and download files from Linux systems over a network. Thus files and folder can be tranfered safely from a local and remote host.

How to use scp command in SSH?

SCP is a command line utility in Linux. To use the scp command in SSH you can follow the syntax ‘scp [OPTIONS] [[user@]src_host:]file1 [[user@]dest_host:]file2.’

Why do we use scp command?

Scp command safely transfers files between systems over a network without the need to login into the system remotely. Thus it is used for backups and managing remote files. 

How to enable scp in Linux?

We can enable default SCP in the SFTP proxy adapter by using the property ‘scp.enable=true’. This allows users to use both SFTP and SCP along with the dynamic (user ID) based routing.

Conclusion

From the above article, you can see that the SCP command in Linux is a very efficient and useful tool for securely copying files and resources. The SCP command is very versatile and can be used in various ways.To use it effectively, it is important to understand how it works and what options are available. Want to learn more about similar topics? Don't worry Coding Ninjas have you covered. Refer to: Linux - Commands List,Linux Regex,Linux - Process Commands.

Also read, pwd command in linux

Happy Learning!

Previous article
Linux Architecture
Next article
Untar Command in Linux
Live masterclass