2010-07-07 4 views
1

나는 복사 명령의 문제에 직면하고 5cp 명령이

실행 된 명령은

cp -fp /fir1/dir2/*/bin/file1 `find . -name file1 -print` 

오류가

cp: Target ./6e0476aec9667638c87da1b17b6ccf46/file1 must be a directory 

당신이 던져 주시겠습니까이다 왜 실패 할까?

감사합니다. 로버트.

cp file1 file2 file2 file4 

할 수없는 즉, 당신은 단지 디렉토리, 파일에 여러 여러 파일을 복사 할 수 없습니다

+2

: 예를 들어, 당신은이 명령이 트릭을 할 것입니다이 같은 디렉토리 구조를 구축, 목표 장소/tmp로 디렉토리 구조 내에서 "파일 1"라는 이름의 모든 파일을 복사하려면, 경우

이것은 프로그래밍 문제가 아니므로 http://superuser.com에 있어야합니다. – Dipstick

+1

@chrisharris : 마이그레이션을 위해 3 명이 더 많은 투표를하자마자. –

+1

명령은 무엇을해야합니까? 여러 파일을 공통 대상 디렉토리에 복사하거나 여러 파일을 하나로 결합하십시오. – Philipp

답변

1

, 당신은

cp file1 file2 file2 dir1 
+0

의견을 보내 주셔서 감사합니다. 나는 그 점을 알고있다. 코드를 적절하게 변경하겠습니다. – Robo

3

당신은 하나 개의 위치로 많은 파일을 복사 할 수 없습니다 필요 그 위치가 디렉토리가 아닌 한.

cp는 cp sourcefile destinationfile 또는 cp source1 source2 destinationdir이어야합니다.

5

cp은 두 개 이상의 파일 이름을 인수로 사용하여 마지막 파일을 대상 디렉토리로 처리하고 다른 인수에 지정된 모든 파일을 해당 대상 디렉토리에 복사합니다. 따라서, 예를 들어,

cp file1 file2 dir3 

dir3/file1dir3/file2을 생성합니다. 귀하의 경우에는 /fir1/dir2/*/bin/file1 패턴이 둘 이상의 파일 이름과 일치하므로 cpfind의 결과를 대상 디렉토리로 처리하려고 시도하고 있습니다.이 파일은 대상 디렉토리가 아니며 실패합니다.

2

다른 사람들은 cp을 사용하여 여러 파일을 하나의 파일로 복사 할 수 없다고 말했습니다. 반면에 하나의 대상 파일에 여러 파일의 내용을 추가하려면 cat을 사용할 수 있습니다. 예를 들어

:

cat file1 file2 file3 > destinationfile 
2

당신이 달성하려고하는 모르고 대답하기 어렵다.

cd /dir1/dir2 
find . -name file1 | cpio -pvd /tmp