파일 및 디렉토리 복사는 명령줄에서 작업할 때 수행하는 가장 일반적인 작업 중 하나입니다. Linux에는 파일을 복사하는 여러 명령이 있으며, cp와 rsync가 가장 널리 사용되는 도구입니다.
cp 명령을 사용하여 파일을 복사하고 디렉토리를 복사하기 위해 rsync를 사용하는 것이 일반적입니다.
파일 및 디렉토리를 복사할 수 있으려면 원본 파일에 대한 읽기 권한과 대상 디렉토리에 대한 쓰기 권한이 적어도 있어야 합니다.
cp 명령을 사용하여 파일을 복사
Linux 및 Unix 운영 체제에서는 cp 명령이 파일 및 디렉토리를 복사하는 데 사용됩니다.
가장 간단한 사용 사례는 현재 작업 디렉토리에 파일을 복사하는 것입니다. 예를 들어, 이름이 지정된 파일을 복사하고 file_backup.txt를 추가합니다. 현재 디렉토리에서 다음 명령을 실행합니다.
cp file.txt file_backup.txt
대상 파일이 있으면 덮어씁니다. 파일을 덮어쓰기 전에 확인 메시지를 표시하려면 -i 옵션을 사용합니다.
cp -i file.txt file_backup.txt
기본적으로 cp 명령을 사용하여 파일을 복사할 때 새 파일은 명령을 수행하는 사용자가 소유합니다. -p 옵션을 사용하여 파일 모드, 소유권 및 타임스탬프를 보존합니다.
cp -p file.txt file_backup.txt
유용할 수 있는 또 다른 옵션은 -v입니다. 이 옵션을 사용할 때 명령어는 수행 중인 작업을 인쇄합니다.
cp -v file.txt file_backup.txt
# 'file.txt' -> 'file_backup.txt'
파일을 디렉토리에 복사
파일을 디렉토리에 복사하려면 디렉토리에 대한 절대 경로 또는 상대 경로를 지정합니다. 대상 디렉터리가 생략되면 파일이 현재 디렉터리로 복사됩니다.
다음 예에서는 /backup 디렉토리의 file.txt 파일을 복사하고 있습니다.
cp file.txt /backup
디렉터리 이름만 대상으로 지정할 때 복사된 파일의 이름은 원본 파일과 동일합니다.
다른 이름으로 파일을 복사하려면 원하는 파일 이름을 지정해야 합니다.
cp file.txt /backup/new_file.txt
위의 명령은 파일을 new_file.txt로 지정된 디렉토리에 복사합니다.
여러 파일을 복사
여러 파일과 디렉터리를 한 번에 복사하려면 원본 파일 및 디렉터리 이름을 지정하고 대상 디렉터리를 마지막 인수로 지정하십시오.
cp file.txt dir file1.txt file2.txt dir1
여러 파일을 복사할 때 대상이 디렉토리여야 합니다.
또한 cp 명령을 사용하여 패턴 일치를 사용할 수 있습니다. 예를 들어 모든 .png 파일을 현재 디렉터리에서 /backup 디렉터리로 복사하려면 다음을 사용합니다.
cp *.png /backup
cp 명령을 사용하여 디렉터리를 복사
모든 파일 및 하위 디렉토리를 포함하여 디렉토리를 복사하려면 -R 또는 -r 옵션을 사용합니다. 다음 예에서는 Pictures to Pictures_backup 디렉터리를 복사하고 있습니다.
cp -R Pictures Pictures_backup
위의 명령은 대상 디렉토리를 생성하고 모든 파일과 하위 디렉토리를 원본에서 대상 디렉토리로 재귀적으로 복사합니다.
대상 디렉토리가 이미 있는 경우 원본 디렉토리 자체와 원본 디렉토리의 내용이 대상 디렉토리에 복사됩니다. 대상 디렉토리가 아닌 파일 및 하위 디렉토리만 복사하려면 -T 옵션을 사용합니다.
cp -RT Pictures Pictures_backup
파일을 복사할 때 사용되는 옵션은 디렉터리를 복사할 때도 사용할 수 있습니다. 주요 차이점은 디렉토리를 복사할 때 -R 옵션을 사용해야 합니다는 것입니다.
rsync 명령을 사용하여 파일 및 디렉터리를 복사
rsync는 두 위치 간에 파일 및 디렉토리를 동기화하는 빠르고 다재다능한 명령줄 변환입니다. 파일을 로컬 및 원격 위치로 복사하는 데 사용할 수 있습니다.
rsync는 동작의 모든 측면을 제어하는 많은 옵션을 포함합니다.
가장 유용한 옵션은 디렉토리 복사, 특수 및 차단 장치 전송 및 심볼 링크, 수정 시간, 그룹, 소유권 및 사용 권한을 보존하는 -a입니다.
한 위치에서 다른 위치로 단일 파일을 복사하려면 다음 명령을 실행합니다.
rsync -a file.txt file_backup.txt
대상 파일이 있으면 rsync가 덮어씁니다.
디렉토리를 복사하는 데 동일한 명령을 사용할 수 있습니다.
rsync -a /var/www/public_html/ /var/www/public_html_backup/
rsync는 후행 슬래시로 끝나는 소스 디렉토리를 다르게 위협합니다. 원본 디렉터리에 후행 슬래시를 추가하면 명령어는 원본 디렉터리의 내용만 대상 디렉터리에 복사합니다. 후행 슬래시가 생략되면 rsync는 대상 디렉토리 내에 원본 디렉토리를 복사합니다. 가장 안전한 옵션은 항상 대상과 소스 모두에 후행 슬래시/를 포함하는 것입니다.
'SW > 리눅스' 카테고리의 다른 글
Linux : Bash : String 문자열 비교 방법, 예제, 명령어 (0) | 2021.08.22 |
---|---|
Linux, 윈도우, MacOS : DNS 캐시 지우는 방법, 예제, 명령어 (0) | 2021.08.21 |
Ubuntu 18.04 : Memcached 설치 방법, 예제, 명령어 (0) | 2021.08.19 |
CentOS 7 : Flask 설치 방법, 예제, 명령어 (0) | 2021.08.18 |
Debian 9 : TensorFlow 설치 방법, 예제, 명령어 (0) | 2021.08.17 |