Linux에서 파일 보존 디렉토리 경로를 복사하는 방법은 무엇입니까?


88

Eclipse 프로젝트와 ".project"파일이 있으며 디렉토리 구조는 ' myProject/.project' 처럼 보입니다 . 이 '.project'파일을 다른 디렉토리에 복사하고 싶지만 둘러싸는 디렉토리 이름을 유지하고 싶습니다.

' a/myProject/.project', ' myProject/.project'를 ' b' 에 복사하고 싶다고해서 ' b/myProject/.project'이지만 ' b/myProject'이 존재하지 않는다고 가정 해 보겠습니다 . 내가 시도 할 때 :

 cp -r ./myProject/.project ../b

'myProject'디렉토리없이 '.project'파일 자체 만 복사합니다. 조언 부탁드립니다.

답변:


153

필요한 스위치는 다음 --parents과 같습니다.

jim@prometheus:~$ cp --parents test/1/.moo test2/
jim@prometheus:~$ ls -la test2/
total 42
drwxr-xr-x   3 jim jim    72 2010-09-14 09:32 .
drwxr-xr-x 356 jim jim 43136 2010-09-14 09:32 ..
drwxr-xr-x   3 jim jim    72 2010-09-14 09:32 test
jim@prometheus:~$ ls -la test2/test/1/.moo
-rw-r--r-- 1 jim jim 0 2010-09-14 09:32 test2/test/1/.moo


7

다음 tar과 같이 사용하십시오 .

mkdir b; tar cpf - myProject/ | tar xpf - -C b/

(테스트되지 않았습니다. 먼저 드라이 런을 제공하거나 모형 시나리오에서 시도하십시오.)


놀랍게 잘 작동합니다! 맥 : mkdir b; tar -c -f new.tar $ (cat myP); tar -x -f new.tar -C b /; #myP는 복사 될 파일 목록이있는 텍스트 파일입니다.
alexey

4

mkdir -p재귀 적 상위 경로 생성을 사용하여 대상 폴더를 만드는 데 처음 사용 하십시오. 그런 다음 내용을 대상 폴더에 복사하십시오.

mkdir -p b/myProject/.project
cp -r a/myProject/.project/file b/myProject/.project

3
cp -P a/myProject/.project b

자세한 내용 man cp은 참조하십시오.


이것은 도움이되지 않는 것 같습니다. '.project'자체는 b에만 복사하지만 'myProject'는 복사하지 않습니다.
dhblah

3

cpio를 find와 함께 사용합니다. 여기에 설명하십시오 .

사용 사례의 예 :

find /a/myProject/.project/ -type f | cpio -p -dumv /b/.

이 명령은 포함 된 모든 파일을 /a/myProject/.project/경로를 유지하면서 사본 에서 모든 파일을 찾습니다 .


1
.project는 dir이 아닌 파일입니다!
ddbug

1

또한 대부분의 내부 디렉토리 사본을 생략하지 않으려면 옵션 --parents을 추가해야합니다.-r

$ cp --parents test/1/.moo test2/
cp: omitting directory ‘test/1/.moo’

그래서 저에게 맞는 명령은

$ cp --parents -r test/1/.moo test2/

0

에 버그가있는 것 같습니다 cp --parents. --parents와 함께 사용하면 --preserve=allSOME 대상 디렉토리의 날짜 및 시간 속성이 유지되지 않았습니다.

다음 링크는 이것이 버그임을 확인하는 것으로 보입니다. bug # 8767 : cp : --preserve = all은 --parent가 사용될 때 부모에 대해 작동하지 않습니다 .

따라서 또는 --parents과 함께 사용할 때 보존되는 속성에 의존 할 수없는 것처럼 보입니다 .--preserve=all-p


-3

나는 명령과 --parents함께 사용 하고 cp나와 함께 perfeclty 일했다. 자세한 내용은 항상 매뉴얼을 사용하십시오. 감사합니다.


3
다른 5 가지 답변에는 아무 것도 추가하지 않습니다.
사슴 사냥꾼

응답자는 Eclipse의 .project가 디렉토리가 아닌 파일이라는 점에 유의하십시오. 따라서 mkdir -pa / .project는 의미가 없습니다.
ddbug
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.