본문 바로가기
카테고리 없음

Linux cp 명령어 옵션 사용법과 예시

by lazyautoman 2023. 2. 2.

"cp" 명령은 유닉스 계열 운영 체제에서 파일과 디렉토리를 복사하는 데 사용됩니다.

 

1. a 옵션

"cp" 명령의 "-a" 또는 "--archive" 옵션은 심볼릭 링크, 권한, 타임스탬프 및 소유권 정보를 보존하면서 파일과 디렉터리를 재귀적으로 복사하는 데 사용됩니다. 이 옵션은 "-r" 또는 "--recursive" 옵션과 유사하지만 원본 파일 및 디렉터리의 모든 메타데이터도 보존합니다.


"example"이라는 이름의 디렉토리에 일부 파일과 하위 디렉토리가 있고 동일한 디렉토리에 "example_copy"라는 다른 이름으로 복사본을 만들고 싶다고 가정합니다. 다음 명령을 사용할 수 있습니다.

 

cp -a example example_copy

 

위의 명령을 실행한 후 새 "example_copy" 디렉터리에 보존된 모든 하위 디렉터리, 파일, 심볼릭 링크, 권한, 타임스탬프 및 소유권 정보와 함께 "example" 디렉터리의 복사본이 생성됩니다.

 

이런 식으로 "-a" 옵션은 디렉토리의 정확한 복사본을 만들고 모든 메타데이터를 보존하려는 경우에 유용합니다.

 

2. -r 옵션

"cp" 명령의 "-r" 또는 "--recursive" 옵션은 파일과 디렉터리를 재귀적으로 복사하는 데 사용됩니다. 이 옵션은 디렉토리 내의 모든 하위 디렉토리, 파일 및 심볼릭 링크를 다른 위치로 복사하는 데 사용됩니다.

 

"example"이라는 이름의 디렉토리에 일부 파일과 하위 디렉토리가 있고 동일한 디렉토리에 "example_copy"라는 다른 이름으로 복사본을 만들고 싶다고 가정합니다. 다음 명령을 사용할 수 있습니다.

 

cp -r example example_copy

 

위의 명령을 실행하면 새 "example_copy" 디렉토리에는 원래 "example" 디렉토리 내의 모든 하위 디렉토리, 파일 및 심볼릭 링크가 모두 복사됩니다.

 

이와 같이 "-r" 옵션은 모든 내용을 포함하여 디렉토리를 다른 위치로 복사하려는 경우에 유용합니다.

 

3. -f 옵션

"cp" 명령의 "-f" 또는 "--force" 옵션은 사용자에게 묻지 않고 기존 파일을 덮어쓰고 존재하지 않는 파일을 무시하는 데 사용됩니다. 이 옵션은 대상 파일이 이미 존재하는 경우에도 강제로 복사 작업을 수행하는 데 사용됩니다.

 

이름이 "example.txt"인 파일이 있고 이름이 "example.txt"인 다른 디렉터리에 복사하려고 한다고 가정합니다. 기본적으로 "cp" 명령은 기존 파일을 덮어쓸 것인지 묻는 메시지를 표시합니다. 그러나 "-f" 옵션을 사용하면 프롬프트 없이 복사 작업이 수행됩니다.

cp -f example.txt destination_directory/example.txt

 

위 명령어를 실행하면 "example.txt" 파일이 같은 이름의 "destination_directory"에 복사되고 기존 파일이 이미 있는 경우 덮어씁니다.

이러한 방식으로 "-f" 옵션은 복사 작업을 강제로 수행하고 복사 프로세스 중에 메시지를 표시하지 않으려는 경우에 유용합니다.

 

4. -u 옵션

"cp" 명령의 "-u" 또는 "--update" 옵션은 대상 파일보다 최신이거나 대상 파일이 존재하지 않는 경우에만 원본 파일을 복사하는 데 사용됩니다. 이 옵션은 파일의 최신 버전만 복사되도록 하는 데 사용됩니다.

이름이 "example.txt"인 파일이 있고 이름이 "example.txt"인 다른 디렉터리에 복사하려고 한다고 가정합니다. 기본적으로 "cp" 명령은 대상 파일보다 최신인지 이전인지에 관계없이 항상 소스 파일을 복사합니다. 그러나 "-u" 옵션을 사용하면 원본 파일이 대상 파일보다 최신인 경우에만 복사 작업이 수행됩니다.

 

cp -u example.txt destination_directory/example.txt

 

위의 명령을 실행하면 원본 파일이 대상 파일보다 최신이거나 대상 파일이 존재하지 않는 경우에만 "example.txt" 파일이 동일한 이름의 "destination_directory"로 복사됩니다.

 

이러한 방식으로 "-u" 옵션은 파일의 최신 버전만 복사하고 이전 파일을 이전 복사본으로 덮어쓰지 않으려는 경우에 유용합니다.

 

5. -v 옵션

"cp" 명령의 "-v" 또는 "--verbose" 옵션은 복사되는 각 파일의 이름을 인쇄하는 데 사용됩니다. 이 옵션은 복사 중인 파일의 이름을 표시하는 데 사용되며 디버깅이나 복사 작업의 진행 상황을 관찰하는 데 유용할 수 있습니다.

 

이름이 "example.txt"인 파일이 있고 이름이 "example.txt"인 다른 디렉터리에 복사하려고 한다고 가정합니다. 기본적으로 "cp" 명령은 복사 중인 파일에 대한 정보를 표시하지 않습니다. 그러나 "-v" 옵션을 사용하면 복사되는 각 파일의 이름이 표시됩니다.

 

cp -v example.txt destination_directory/example.txt

 

위의 명령을 실행하면 "example.txt" 파일이 같은 이름으로 "destination_directory"에 복사되고 복사되는 파일의 이름이 다음과 같이 표시됩니다.

 

'example.txt' -> 'destination_directory/example.txt'

 

이와 같이 "-v" 옵션은 복사 중인 파일에 대한 정보를 표시하고 복사 작업의 진행 상황을 관찰하려는 경우에 유용합니다.

 

6. -p 옵션

"cp" 명령의 "-p" 또는 "--preserve" 옵션은 파일을 복사할 때 수정 시간, 액세스 시간, 소유권 및 권한과 같은 원본 파일 속성을 보존하는 데 사용됩니다. 이 옵션은 원본 파일을 다른 위치에 복사할 때 원본 파일의 원래 속성을 유지하는 데 사용됩니다.

 

이름이 "example.txt"인 파일이 있고 이름이 "example.txt"인 다른 디렉터리에 복사하려고 한다고 가정합니다. 기본적으로 "cp" 명령은 파일을 복사하지만 수정 시간과 같은 일부 속성은 보존되지 않을 수 있습니다. 그러나 "-p" 옵션을 사용하면 파일 속성이 보존됩니다.

 

cp -p example.txt destination_directory/example.txt

위의 명령을 실행하면 "example.txt" 파일이 "destination_directory"에 같은 이름으로 복사되고 수정 시간, 액세스 시간, 소유권 및 권한과 같은 속성이 보존됩니다.

이와 같이 "-p" 옵션은 원본 파일을 다른 위치에 복사할 때 원본 파일의 원래 속성을 유지하려는 경우에 유용합니다.

 

7. -l 옵션

 

"cp" 명령의 "-l" 또는 "--link" 옵션은 파일을 복사하는 대신 하드 링크를 만드는 데 사용됩니다. 하드 링크는 동일한 파일 시스템에 있는 파일에 대한 참조이며 원본 파일에 대한 별칭 역할을 합니다. 하드 링크의 내용을 수정하면 원본 파일의 내용도 수정됩니다.

 

"example.txt"라는 이름의 파일이 있고 "example.txt"라는 동일한 이름의 다른 디렉토리에 해당 파일에 대한 하드 링크를 생성하려고 한다고 가정합니다. 다음 명령을 사용할 수 있습니다.

 

cp -l example.txt destination_directory/example.txt

위 명령을 실행하면 "destination_directory"에 "example.txt" 파일에 대한 하드 링크가 같은 이름으로 생성됩니다. 하드 링크의 내용에 대한 모든 변경 사항은 원본 파일에 반영되며 그 반대의 경우도 마찬가지입니다.


이런 식으로 "-l" 옵션은 내용을 다른 위치에 실제로 복사하지 않고 원본 파일에 액세스하는 데 사용할 수 있는 파일에 대한 별칭을 만들려는 경우에 유용합니다.

 

8. -s 옵션

"cp" 명령의 "-s" 또는 "--symbolic-link" 옵션은 파일을 복사하는 대신 심볼릭 링크를 만드는 데 사용됩니다. 심볼릭 링크는 파일 시스템의 파일에 대한 참조이며 원본 파일에 대한 포인터 역할을 합니다. 심볼릭 링크의 내용을 수정해도 원본 파일의 내용은 수정되지 않습니다.

 

"example.txt"라는 이름의 파일이 있고 "example.txt"라는 동일한 이름의 다른 디렉토리에 이 파일에 대한 심볼릭 링크를 만들고 싶다고 가정합니다. 다음 명령을 사용할 수 있습니다.

 

cp -s example.txt destination_directory/example.txt

 

위 명령을 실행하면 "example.txt" 파일에 대한 심볼릭 링크가 동일한 이름으로 "destination_directory"에 생성됩니다. 심볼릭 링크의 내용에 대한 변경 사항은 원본 파일에 반영되지 않습니다.

 

이런 식으로 "-s" 옵션은 내용을 다른 위치에 실제로 복사하지 않고 원본 파일에 액세스하는 데 사용할 수 있는 파일에 대한 포인터를 만들려는 경우에 유용합니다.

댓글