을 img_misc하려면 GNU mv
명령은 편리한 옵션이 -t target-directory
xargs
에서 유용 할 수 있지만 여기서 100 개의 파일마다 다른 대상 디렉토리를 만들어야하므로 -t
을 사용하지 않을 것입니다.
xargs
명령은 파일 이름을 100 세트로 그룹화 할 수 있습니다. 잔여 문제는 대상의 디렉토리 이름을 결정하는 것입니다.
#!/bin/bash
mkdir -p images-000
dirnum=$(ls -d images-[0-9][0-9][0-9] | sed -n '$s/images-//p')
newdir="images-$(($dirnum + 1))"
mv "[email protected]" "$newdir" # or: qmv -t "$newdir" "[email protected]"
rm -fr images-000
images-000
디렉토리 물건을 초기화하기 위해 만들어 지지만 모든 파일의 대상이 결코 :이를 위해, 쉘 스크립트 적합합니다. 이번에는 ls
을 구문 분석해도 괜찮습니다. 목록에있는 이름에는 공백, 개행 문자 또는 기타 어색한 문자가 포함되지 않기 때문입니다. (일반적으로, ls
의 출력을 구문 분석에 대해 매우 신중해야합니다.) move-files.sh
라는 해당 스크립트와
, 당신은 지금과 같이 실행할 수 있습니다 -0
주로 GNU 확장 find
위한
find /source/place-1 /opt/photos/place-2 … -type f -print0 |
xargs -0 -n 100 -r -- movefiles.sh
주 -print0
것을 및 xargs
이지만 Mac OS X find
및 xargs
도 지원합니다. xargs
에 대한 -r
옵션도 GNU 확장입니다. Mac OS X xargs
에는 지원되지 않으며 해당 항목이 없습니다. 또한 --no-run-if-empty
으로 알려져 있습니다. 파일 이름이 없으면 xargs
은 프로그램 을 실행하지 않음을 의미합니다. 표준 파일 번호가 없어도 명령을 한 번 이상 실행해야하는 표준 xargs
과는 다릅니다. -r
이없는 경우 if [ $# != 0 ]; then …current script…; fi
으로 스크립트를 수정하여 인수가 0 인 경우 스크립트를 보호 할 수 있습니다.
어떻게 파일을 폴더로 분할 할 계획입니까? 무작위로? 이름으로? 유형별? 디렉토리 항목 순서로? –
내가 정말로 원하는 것은 폴더 당 100 개 파일이므로 관리가 더 쉽습니다. – ilovepoker
폴더 당 100 개의 임의 파일은 어떤 종류의 외부 색인 메커니즘 없이는 아무 것도 찾을 수 없으므로 관리하기가 쉽지 않습니다. 그러나 그것이 정말로 당신이 원하는 것이'xargs'가 도움이 될 것입니다. –