나는 다음 작업을 수행하는 "Linux 방식"을 찾으려고 노력하고 있습니다. 나는 각각 다양한 파일 형식의 여러 파일을 포함하는 여러 개의 하위 디렉터리가 있는 디렉터리를 가지고 있습니다. 찾기 명령을 사용하여 쉽게 범위를 좁힐 수 있습니다.
find . -name "*.jpg"
그러면 .jpg로 끝나는 모든 파일 목록이 반환됩니다. 추가적으로(별도로) dirsplit 명령을 사용하여 디렉터리를 각각 100MB의 파일 그룹으로 분할할 수 있습니다.
dirsplit --size 100MB -m --expmode 1 .
이제 두 가지 질문이 있습니다. 먼저, dirsplit이 "find" 명령의 출력에만 작동하도록 이 두 명령을 결합하고 싶습니다. 즉, 모든 것을 재정렬하는 것이 아니라 해당 JPG만 재정렬합니다. Dirsplit로 파이프하는 것이 가능합니까?
두 번째 문제는 "-m" 플래그입니다. 여기서 볼 수 있습니다.https://manned.org/dirsplit/15f31c9a그러면 dirsplit이 실제로 파일을 원하는 폴더로 이동하게 됩니다. 제 질문은 이동보다는 복사가 가능한지 여부입니다. 즉, 파일을 현재 위치에 유지하되 100개 그룹으로 추가 복사본을 만드는 것입니다.
어떤 아이디어가 있나요?
답변1
dirsplit -H
find와 함께 사용하는 예를 포함하여 명령에 대한 자세한 정보가 제공됩니다.
find . -name "*.jpg" -printf "%s %p" | dirsplit -T- --size 100MB --expmode 1 -L
-T-
" 형식의 표준 입력에서 파일 목록을 읽습니다.파일 이름 파일 크기"
-L
하드 링크 생성(복사 옵션이 없는 것 같습니다)