파일 찾기 및 복사
다음은 왜 파일을 대상 폴더에 복사하지 않습니까?
# find /home/shantanu/processed/ -name '*2011*.xml' -exec cp /home/shantanu/tosend {} \;
cp: omitting directory `/home/shantanu/tosend'
cp: omitting directory `/home/shantanu/tosend'
cp: omitting directory `/home/shantanu/tosend'
발견 된 파일을 / home / shantanu / tosend로 복사하려는 경우 cp에 대한 인수 순서가 있습니다.
find /home/shantanu/processed/ -name '*2011*.xml' -exec cp {} /home/shantanu/tosend \;
참고 : find 명령 은 일치하는 파일의 자리 표시 자로 {} 를 사용 합니다.
나는 이와 같은 문제에 직면했다 ...
실제로 두 가지 방법으로 find
명령에서 copy
명령 출력을 처리 할 수 있습니다.
경우
find
파일 이름이 공간을 포함하지 않는 경우 명령의 출력은 어떤 공간 즉 포함되어 있지 않습니다 당신은 아래에 언급 된 명령을 사용할 수 있습니다 :통사론 :
find <Path> <Conditions> | xargs cp -t <copy file path>
예 :
find -mtime -1 -type f | xargs cp -t inner/
그러나 대부분의 방송 데이터 파일에는 공간이 있습니다. 따라서 아래에서 사용 된 명령은 대부분 더 안전합니다.
통사론 :
find <path> <condition> -exec cp '{}' <copy path> \;
예
find -mtime -1 -type f -exec cp '{}' inner/ \;
두 번째 예에서는 마지막 부분 즉 세미콜론도 find
명령의 일부로 그리고 Enter 버튼을 누르기 전에 이스케이프해야합니다. 일치하는 다음과 같은 오류가 발생합니다.
find: missing argument to `-exec'
귀하의 경우, 찾기 파일을에 복사하기 위해 복사 명령 구문이 훨씬 더 /home/shantanu/tosend
. 다음 명령이 작동합니다 :
find /home/shantanu/processed/ -name '*2011*.xml' -exec cp {} /home/shantanu/tosend \;
cp -t /home/shantanu/tosend
인수가 소스가 아니라 대상 디렉토리임을 알리기 위해 사용 합니다. 그런 다음 가능한 한 많은 파일을 한 번에 복사 -exec ... +
하기 위해 행사 수 있습니다 cp
.
for i in $(ls); do cp -r "$i" "$i"_dev; done;
그 오류의 이유는 -r 옵션이 필요한 폴더를 cp 감사합니다.
참고 URL : https://stackoverflow.com/questions/5241625/find-and-copy-files
'IT' 카테고리의 다른 글
링크를 클릭하여 JavaScript로 양식을 출시하는 방법은 무엇입니까? (0) | 2020.07.23 |
---|---|
Android : DB 버전 업그레이드 및 새 테이블 추가 (0) | 2020.07.23 |
Project-Swift.h를 Objective-C 클래스로 가져 오기… (0) | 2020.07.23 |
Visual Studio를 열 수 없습니다- '설정이 진행 중일 때 수 없습니다'오류 발생 (0) | 2020.07.23 |
저장소 패턴을 준수하면서 Laravel에서 관계 관리 (0) | 2020.07.23 |