IT story

한 디렉토리에서 기존 디렉토리로 파일 복사

hot-time 2020. 4. 24. 08:07
반응형

한 디렉토리에서 기존 디렉토리로 파일 복사


bash에서 나는 이것을해야한다 :

  1. 디렉토리의 모든 파일을 가져옵니다

  2. 기존 디렉토리에 복사

어떻게해야합니까? 나는 시도했다 cp -r t1 t2(t1과 t2는 기존 디렉토리이고, t1은 파일을 가지고 있음) t2 안에 t1이라는 디렉토리를 만들었지 않기를 원하지 않는다. 나는 t1의 파일이 t2로 직접 들어가야한다. 어떻게해야합니까?


당신이 원하는 것은 :

cp -R t1/. t2/

끝에있는 점은 디렉토리 자체가 아니라 현재 디렉토리의 내용을 복사하도록 지시합니다. 이 방법에는 숨겨진 파일과 폴더도 포함됩니다.


한 디렉토리에서 현재 디렉토리 로 무언가를 복사하려면 다음을 수행하십시오.

cp dir1/* .

이것은 숨겨진 파일을 복사하지 않으려는 것으로 가정합니다.


cp dir1/* dir2

또는 dir1 내부에 복사하려는 디렉토리가있는 경우

cp -r dir1/* dir2

t1이 파일이 들어있는 폴더이고 t2가 빈 디렉토리라고 가정합니다. 원하는 것은 다음과 같습니다.

sudo cp -R t1/* t2/

첫 번째 예에서 t1과 t2는 전체 경로 또는 상대 경로 (현재 위치에 따라) 여야합니다. 원하는 경우 빈 폴더 (t2)로 이동하여 다음을 수행 할 수 있습니다.

sudo cp -R t1/* ./

또는 파일 (t1)이있는 폴더로 이동하여 다음을 수행 할 수 있습니다.

sudo cp -R ./* t2/

참고 : * 기호 (또는 와일드 카드)는 모든 파일 및 폴더를 나타냅니다. -R 플래그는 재귀 적으로 모든 것을 의미합니다.


cp -R t1/ t2

소스 디렉토리의 후행 슬래시는 시맨틱을 약간 변경하므로 디렉토리 자체가 아닌 컨텐츠를 복사합니다. 또한 Bertrand의 답변에 포함 된 글 로빙 및 보이지 않는 파일의 문제를 피합니다 ( t1/*보이지 않는 파일을 복사하지 않으면`t1 / * t1 /.* '사본 t1 /. 및 t1 / ..을 복사하지 않음).


일부 세부 사항에 따라 다음과 같이해야 할 수도 있습니다.

r=$(pwd)
case "$TARG" in
    /*) p=$r;;
    *) p="";;
    esac
cd "$SRC" && cp -r . "$p/$TARG"
cd "$r"

... 이것은 기본적으로 SRC 디렉토리로 변경되어 대상에 복사 한 다음 시작한 시점으로 되돌아갑니다.

추가 소란은 상대 또는 절대 목표를 처리하는 것입니다.

(이것은 cp명령 자체 의 미묘한 의미론에 의존하지 않습니다 ... 후행 유무에 관계없이 소스 사양을 처리하는 방법에 관한 것입니다 ... GNU cp와 I를 넘어서서 안정적이고 휴대 가능하며 신뢰할 수 있는지 확실하지 않기 때문에 앞으로도 계속 그렇게 될지 모르겠습니다).


일부 디렉토리 내부의 경우 "folder1"의 모든 내용을 일부 디렉토리 내의 새 디렉토리 "folder2"로 복사하므로 전체 사용됩니다.

$ (pwd)는 현재 디렉토리의 경로를 가져옵니다.

folder1 뒤에있는 점 (.)을 확인하여 folder1 내의 모든 내용을 가져옵니다.

cp -r $(pwd)/folder1/. $(pwd)/folder2

참고 URL : https://stackoverflow.com/questions/3643848/copy-files-from-one-directory-into-an-existing-directory

반응형