![확장별로 혼합 디렉터리를 분할하는 가장 좋은 방법은 무엇입니까?](https://linux55.com/image/164276/%ED%99%95%EC%9E%A5%EB%B3%84%EB%A1%9C%20%ED%98%BC%ED%95%A9%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EB%A5%BC%20%EB%B6%84%ED%95%A0%ED%95%98%EB%8A%94%20%EA%B0%80%EC%9E%A5%20%EC%A2%8B%EC%9D%80%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
여러 파일 형식이 포함된 디렉터리 트리가 있고 이 디렉터리를 하나의 파일 형식만 포함하는 동일한 디렉터리 구조로 분할하고 싶습니다.
가장 좋은 접근 방식은 무엇입니까?
예: 이전
dir1 -- dir2 foo.jpg
dir3 foo.mpg
뒤쪽에
foo_jpg -- dir1 -- dir2 foo.jpg
dir3
foo_mpg -- dir1 -- dir2
dir3 foo.mpg
답변1
먼저 하드 링크를 사용하여 속도를 높이고 많은 디스크 공간을 차지하지 않도록 트리 복사본을 두 개 만듭니다.
mkdir foo_jpg foo_mpg
cp -al dir1 foo_jpg
cp -al dir1 foo_mpg
그런 다음 트리에서 필요하지 않은 항목을 제거하세요.
find foo_jpg -type f ! -name '*.jpg' -delete
find foo_mpg -type f ! -name '*.mpg' -delete
이제 디렉터리 구조와 요청된 파일만 포함하는 2개의 트리가 있습니다. 원본 트리를 삭제하는 옵션이 있습니다.
답변2
나는 이 대답을 찾았습니다:
rsync --recursive --include='*.jpg' --filter='-! */' '/dir1' '/foo_jpg/'