파일 확장자를 다른 디렉터리로 복사하려면 어떻게 해야 합니까?

파일 확장자를 다른 디렉터리로 복사하려면 어떻게 해야 합니까?

orig와 이라는 두 개의 디렉토리가 있다고 가정해 보겠습니다 backup. 원본에는 이 파일이 포함되어 있습니다 foo. 파일을 백업 디렉터리에 복사하고 싶지만 foo확장자는 .txt.

답변1

cp /path/to/orig/foo /path/to/backup/foo.txt

cp소스 파일을 첫 번째 인수로, 대상 파일을 두 번째 인수로 사용합니다. 허용되는 대상 디렉터리를 간단히 지정하는 데 사용할 수 있지만 대상 파일의 이름도 바뀌도록 전체 경로를 지정할 수도 있습니다.


cp명령에는 소스 파일과 대상의 두 가지 호출 방법이 있습니다.목차, 소스 파일 및 대상 포함문서. 매뉴얼의 명령 요약 섹션에는 다음이 반영되어 있습니다( man cp).

usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file target_file
       cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file ... target_directory

답변2

비밀은 파일 확장자가 없다는 것을 깨닫는 것입니다. 파일 확장자는 CP/M의 잘못된 복제품인 MS_DOS에서 채택한 CP/M 개념입니다. 유닉스에는 그것들이 없으며 단지 이름의 일부일뿐입니다. 그러나 이 문제를 해결하는 데 도움이 되는 도구가 있습니다.

  • basename: 기본 이름(접미사 없이)을 얻는 데 사용할 수 있습니다.
  • rename: (Larry Wall 버전) 파일 이름을 바꾸는 데 적합합니다.

당신이 원하는 것을 위해.

( fileName=foo; cp -T "/path/to/orig/${fileName}" "/path/to/backup/${fileName}.txt" )

안전을 위해 이 옵션을 추가했습니다 -T. 생략할 수 있습니다(모든 사람이 cp이 옵션을 갖고 있는 것은 아닙니다. 그러나 실수를 하면(두 번째 매개변수에 디렉토리 지정), 이 옵션이 없으면 파일이 이 디렉토리에 복사됩니다.

관련 정보