문제
Locate의 출력 파일 목록을 만들고 싶습니다. 원해요 scp
목록을 가져갑니다.
구문에 대해 잘 모르겠습니다. 의사 코드에 대한 나의 시도
locate labra | xargs scp {} masi@11.11.11:~/Desktop/
파일을 대상으로 어떻게 이동할 수 있습니까?
해결책
일반적으로 {}는 a입니다 찾기주의:
find ... -exec cmd {} \;
여기서 {}는 찾은 현재 파일입니다.
당신은 얻을 수 있습니다 Xargs 비슷한 행동 :
locate labra | xargs -I{} echo {} more arguments
그러나 하나의 호출 대신 명령을 여러 번 실행한다는 것을 빨리 알 수 있습니다. SCP.
그러므로 당신의 예의 맥락에서 :
locate labra | xargs -I{} scp '{}' masi@11.11.11:~/Desktop/
{} 주변의 단일 따옴표에 주목하십시오. 공백이있는 경로에 유용합니다.
다른 팁
Xargs는 일반적으로 명령 줄에 맞을 수있는 많은 인수를 취하지 만 -i를 사용하면 갑자기 하나만 사용됩니다. GNU 평행 http://www.gnu.org/software/parallel/ 더 나은 솔루션 일 수 있습니다.
locate labra | parallel -m scp {} masi@11.11.11:~/Desktop/
SCP를보고 있으므로 RSYNC도 확인해 주시겠습니까?
locate labra | parallel -m rsync -az {} masi@11.11.11:~/Desktop/
제휴하지 않습니다 StackOverflow