파일 이름을 기반으로 한 정규식이 대상 디렉터리의 파일과 일치하지 않는 경우에만 파일을 이동합니다.

파일 이름을 기반으로 한 정규식이 대상 디렉터리의 파일과 일치하지 않는 경우에만 파일을 이동합니다.

예를 들어 설명하는 것이 가장 좋습니다.

소스 디렉터리:

  • 파일-a-1.txt
  • 파일-b-1.txt

대상 디렉터리:

  • 파일-a-2.txt

예상되는 결과:

  • 파일-a-2.txt
  • 파일-b-1.txt

파일이 원본 디렉터리에서 대상 디렉터리로 이동되고 대상 디렉터리에 파일 이름과 부분적으로 일치하는 파일이 없는 경우에만 원본 디렉터리의 모든 파일을 대상 디렉터리로 이동합니다.

답변1

해결책:

  1. 대상 디렉터리의 파일 나열

  2. sed를 사용하여 와일드카드 일치 대체

  3. rsync로 파이프--exclude-from

find target_dir | sed -r 's/\.\/(.+?)-.*/\1*/' | rsync --verbose --ignore-existing --exclude-from - src_dir/* target_dir

관련 정보