2014-09-13 3 views
1

전체 파일 대상 경로로 파일을 dir에 복사하는 방법은 무엇입니까? 전체 경로가 포함 된 Linux cp

은 내가 사용하는 경우 :

cp --parents /etc/passwd /tmp 

내가 오류가

cp: illegal option -- - usage: cp [-R [-H | -L | -P]] [-f | -i | -n] [-alpvx] source_file target_file cp [-R [-H | -L | -P]] [-f | -i | -n] [-alpvx] source_file ... target_directory 

어쩌면 가능성이

같은 변수를 연결하는 거기에 내가

for line in "`cat fromDirs.txt`"; do find "$line" -type f \(-name '*good*' -o -exec grep -F "(NODES_'TASK')" {} \; \) -exec cp {} /tmp/ \;; done 

this script를 사용하는 경우

-exec cp $line{} /tmp/ \;; done 
or 
-exec cp {} /tmp/$line \;; done 

???

+1

첫 번째 명령 ('CP의 --parents/etc/passwd에/tmp'을) 나를 위해 잘 작동 :

이처럼 에뮬레이션 할 수 있습니다. 어떤 구현/버전의'cp'를 사용하고 있습니까? – 5gon12eder

+2

나는 khow를하지 않는다! 그것을 확인하는 방법? –

+0

'cp --version'을 시도하거나'man cp'를보십시오. 내 것은'cp (GNU coreutils) 8.22'이다. – 5gon12eder

답변

2

문제는 사용중인 버전이 cp입니다. 긴 옵션을 허용하지 않습니다. --parents을 볼 때 , a, r 등 옵션과 함께 - 옵션을 사용하려고한다고 생각합니다.

source=/etc/passwd 
mkdir -p /tmp/$(dirname $source) 
cp $source /tmp/$source 
+1

오케이 내가 여기서 할 수있는 일은 무엇입니까? 연결하는 방법? 당신이 말하는 것처럼 보이는 내 스크립트를 어떻게 바꿀 수 있습니까? –

+0

@DmitrijHolkin : 답을 편집하여 시도 할 수있는 코드를 추가했습니다. –

관련 문제