당신은 사용할 수 있습니다 mcp
으로부터 mmv
패키지 다음과 같은 방법으로 :
mcp "*original*" "#1copy#2"
현재 디렉토리에 "original"이라는 문자열이 포함 된 모든 파일을 복사하고이 문자열을 "copy"로 바꿉니다. 플래그 mcp
를 추가하여 수행 할 작업을 테스트 할 수 -n
있지만 파일을 자동으로 덮어 쓰지는 않지만 요청합니다. 를 사용하면 모든 단일 파일에 대해 호출 할 필요가 없다는 mmv
장점 cp
이 있습니다. 복사하는 것처럼 1000 개의 파일이 있으면 차이가 있습니다.
다음과 같은 방법으로 GNUparallel
를 사용할 수도 있습니다 ( --dry-run
테스트 용, 복사를 수행하여 제거하여 복사).
parallel --dry-run cp -p "{}" "{=s/original/copy/=}" ::: *
또는 "인수 목록이 너무 깁니다"오류가 발생하는 경우 :
printf "%s\0" * | parallel --dry-run -0 cp -p "{}" "{=s/original/copy/=}"
예제 실행
$ ls -1
foo_bar_abc_1_01_geh_original.in
foo_bar_abc_1_02_geh_original.in
foo_bar_abc_1_03_geh_original.in
foo_bar_abc_1_04_geh_original.in
$ mcp "*original*" "#1copy#2"
$ ls -1
foo_bar_abc_1_01_geh_copy.in
foo_bar_abc_1_01_geh_original.in
foo_bar_abc_1_02_geh_copy.in
foo_bar_abc_1_02_geh_original.in
foo_bar_abc_1_03_geh_copy.in
foo_bar_abc_1_03_geh_original.in
foo_bar_abc_1_04_geh_copy.in
foo_bar_abc_1_04_geh_original.in
하자입니다 time
A의 100 킬로바이트 각각 1000 개 파일을 통해 실행, 그것을 느린 기계 :
$ time mcp "*original*" "#1copy#2"
real 0m1.114s
user 0m0.000s
sys 0m0.132s