원격 디렉토리에서 모든 파일 복사

Abdullah Bukhari 2024년2월15일
  1. scp 명령
  2. Bash에서 파일 복사
원격 디렉토리에서 모든 파일 복사

이 문서에서는 네트워크의 서로 다른 호스트 간에 파일을 복사하는 방법에 대해 설명합니다. 또한 scp 명령과 원격 위치에서 파일을 복사하는 데 사용되는 방법을 살펴봅니다.

scp 명령

SCP(Secure Copy Protocol)는 Unix 호환 운영 체제 간에 파일 및 폴더를 원활하게 복사할 수 있도록 안전하게 복사하는 네트워크 프로토콜입니다.

scp 명령은 cp 명령의 훨씬 더 안전한 변형입니다. SSH(Secure Shell) 연결을 통해 원격 복사하는 동안 암호와 파일을 암호화하여 스니핑 공격으로부터 통신을 보호합니다.

scp에 대한 자세한 내용을 보려면 아래 명령을 사용하십시오.

man scp

매뉴얼 페이지(매뉴얼 페이지의 약식)는 시스템 호출, 라이브러리 호출, 공식 표준 및 규칙, 심지어 추상적인 개념에 대한 정보를 표시하는 Unix 유틸리티입니다. 매뉴얼 페이지는 커널과 함께 다운로드되므로 인터넷 연결이 필요하지 않습니다.

Bash에서 파일 복사

Bash에서 파일을 복사하는 방법에는 여러 가지가 있습니다. cp, cat, vim(모든 텍스트 편집기) 및 scp는 우리가 할 수 있는 많은 방법 중 일부일 뿐입니다. 아래 코드는 Bash에서 파일을 복사하는 방법을 탐색합니다.

1) cp <source file>.txt <destination file>.txt
2) cat 0<source_file.txt 1>destination_file.txt
3) cat <source_file.txt >destination_file.txt

Bash에서 파일 복사

첫 번째 방법은 소스 파일에서 내용을 복사한 다음 대상 파일에 붙여넣는 것입니다. cp는 대상 파일이 존재하지 않더라도 내용을 대상 파일에 붙여넣습니다.

커널이 대상 파일을 자동으로 생성하기 때문에 이렇게 합니다.

두 번째 방법은 운영 체제 과목에서 공부한 개념을 사용합니다. ppfdt (프로세스 파일 디스크립터 테이블)을 상기해 보세요. 파일 디스크립터 0은 키보드 (stdin)를 가리키고, 파일 디스크립터 1은 모니터 (stdout)를 가리키며, 파일 디스크립터 2는 모니터 (stderror)를 가리킵니다.

이 두 번째 방법은 설명자 0을 재정의하여 소스 파일을 가리킵니다. 또한 대상 파일을 가리키도록 stdout을 재정의합니다.

세 번째 방법은 두 번째 방법과 비슷하지만 설명자 3은 소스 파일을 가리키고 설명자 4는 대상 파일을 가리킵니다.

방법 2와 3 모두 소스 파일에서 읽기가 수행되고 대상 파일에 쓰기가 수행됩니다. 커널은 대상 파일이 존재하지 않더라도 내용을 대상 파일에 붙여넣는다는 점에 유의해야 합니다.

커널이 대상 파일을 자동으로 생성하기 때문입니다.

원격 위치에 걸쳐 Bash에서 안전하게 파일 복사

scp 명령의 일반 구문은 다음과 같습니다.

scp [option] [user_name@source_host:path/to/source/file] [user_name@target_host:destination/path]

user_name을 제공하지 않으면 scp는 현재 사용자를 기본값으로 사용합니다. 대상 경로를 제외하면 scp 명령은 소스에서 현재 로컬 경로로 복사하는 것을 고려합니다.

마찬가지로 소스 경로를 생략하면 scp 명령이 파일 복사를 위한 소스로 현재 로컬 경로를 사용하게 됩니다.

옵션에서 -r을 지정하면 모든 파일과 하위 디렉토리를 재귀적으로 복사합니다. 따라서 파일을 복사하려면 옵션을 지정하지 마십시오. 파일을 복사하지만 하위 디렉토리는 제외합니다.

다른 명령에 비해 scp의 이점은 파일을 암호화하므로 훨씬 더 안전하다는 것입니다.