수정된 파일을 반복적으로 찾아 디렉터리 구조를 유지하는 디렉터리를 사용하여 복사합니다.

수정된 파일을 반복적으로 찾아 디렉터리 구조를 유지하는 디렉터리를 사용하여 복사합니다.

지난 1년 동안 추가된 이미지를 디렉토리에서 찾아 원래 폴더 구조를 유지하는 새 디렉토리에 복사하고 싶습니다.

find를 사용하고 있지만 아무것도 복사하지 않습니다. 한 줄 명령을 사용하여 수행할 수 있는 방법이 있습니까?

find image/* -mtime +356 -exec cp {} modified-last-year/ \;

이 명령을 실행할 때 이미지 디렉터리에 있는데 이미지 폴더를 재귀적으로 검색하고 싶습니다.

[편집]
이 두 가지 질문에 답한 후 다음을 수행했습니다. 1. 블록이 0개 있어요
.find image/* -mtime +356 | cpio -pd /target_dir

  1. find /full/path/to/image -mtime 365 -type f ( "-name *.jpg -o -name *.gif ) -execdir cp {} /full/path/to/image_target_dir/modified-last-year \;
    그리고
  2. find /full/path/to/image -mtime 365 -type f -execdir cp {} /full/path/to/image_target_dir/modified-last-year \;
    아무것도 복사되지 않습니다.

    그리고 -type f를 사용하거나 사용하지 않고 파일 수를 조회하면 됩니다.

  3. find /full/path/to/image -mtime 365 -type f | wc -l
    나는 0을 얻는다.

    이미지 디렉토리와 하위 디렉토리에 지난 1년 동안 추가된 파일이 존재하는지 확인할 수 있습니다. 실제로는 200개 이상의 이미지가 있어야 합니다.

    [편집 2]
    또한 다음 코드가 제대로 작동하려면 조회에서 디렉터리를 제외해야 했습니다.

    첫 번째 답변 덕분에 이것을 만들 수 있었습니다.
    find /full/path/to/image/* -path /full/path/to/image/ignored_dir -prune -o -print -mtime -365 | cpio -pd /full/path/to/target_dir/modified-last-year

답변1

cpio다음을 사용하여 통과 모드에서 찾기를 사용할 수 있습니다 .

 find  image/ -mtime -365 | cpio -pd /target_dir

편집: 검색 경로에서 불필요한 *를 제거했습니다.

답변2

이미 디렉토리에 있다면 문제가 있는 것입니다 image. 상대 경로의 경우 (etc)를 find image/* ...사용할 수 있습니다 . 여기서 "." find .현재 디렉터리와 해당 하위 디렉터리 트리를 나타내거나 더 나은 방법은 절대 경로를 사용하는 것입니다.

$ find /full/path/to/imagedir -mtime -365 -execdir cpio -pdv {} /absolute/path/to/targetdir \;

적절한 권한이 있는 경우 위 명령은 디렉터리 구조를 유지하면서 지난 365*24시간(오늘 이전) 동안 수정된 모든 파일을 대상 디렉터리에 복사해야 합니다.

옵션은 동일한 작업을 수행하지만 선택한 파일이 있는 디렉터리에서 수행되는 것 -execdir보다 안전합니다 .-exec

-type f \( "-name \*.jpg -o -name \*.gif \)위의 cmd에 옵션을 지정하여 구문 분석 중인 파일을 추가로 제한할 수 있습니다.

cpio의 옵션은 다음과 같습니다.

-p for passthrough (does not make an archive out of the set of dound files)
-d to preserve the directory structure
-v to visualize files being copied

find다음에서 맨페이지를 확인하세요 .https://www.gnu.org/software/cpio/manual/cpio.html전체 cpio온라인 설명서를 받아 기억하세요www.startpage.com답을 구할 때 제품을 제공하지 않는 친구입니다.

관련 정보