단일 파일(PDF)이 있고 같은 폴더(200이면 좋을 것임)에 동일한 복사본을 많이 갖고 싶습니다 file-001
.file-002
어떻게 해야 하나요?
답변1
당신은 다음과 같은 것을 할 수 있습니다
< file tee file-{001..200}
그러나 매체를 읽을 수 없게 되면 매체에 얼마나 많은 사본이 있는지는 중요하지 않습니다. 기본적으로 백업에는 다음이 필요합니다.다양성.
tee
표준 출력은 물론 주어진 각 파일에도 표준 입력을 기록합니다. 큰 파일이나 바이너리 데이터 또는 터미널 설정을 방해할 수 있는 기타 특수 문자가 포함된 파일의 경우 표준 출력을 다음으로 덤프할 수 있습니다 . 비트 버킷
< file > /dev/null tee file-{001..200}
답변2
이는 쉘 트릭이 많은 도움이 되는 전형적인 사례입니다.
for i in {000..199}; do cp file file-$i; done
그리고농담인 거 알아, 그러나 임의의 숫자를 원하거나 _
이름 -
에서 숫자를 분리하려면 다음을 사용할 수 있습니다.
for i in {000..199}; do
cp file file$(cat /dev/urandom | tr -dc '_-' | fold -w 1 | head -n 1 )$i;
done
(가독성을 돕기 위해 여러 줄로...)
:-피
답변3
파일의 단일 복사본을 만들려면 다음을 사용할 수 있다는 것을 알고 있을 것입니다 cp
.
cp file file-001
이제 파일에 더 많은 복제본을 만들려면 cp
와 결합할 수 있습니다 xargs
. 귀하의 경우:
echo file-{001..200} | xargs -n 1 cp file
, ,... , file
에 복사됩니다 . 자세한 내용은 을 참조하세요 .file-001
file-002
file-200
man xargs
답변4
언제나 그렇듯이, 파이썬 트럭은 늦게 옵니다. 하지만:
실행 가능하게 만들고 터미널 창 위로 끌어서 터미널 창 위로 복사할 파일을 끌어서 복사본 수를 설정합니다.
script file number_ofcopies
선행 0의 개수는 자동으로 설정되며, 파일 이름은 file_001.pdf
, file_002.pdf
, 파일 번호가 지정됩니다.~ 전에확장.
스크립트:
#!/usr/bin/env python3
import sys
import shutil
orig = sys.argv[1]; n = sys.argv[2]; size = len(str(n)); out = (orig[:orig.rfind(".")], orig[orig.rfind("."):])
for item in [out[0]+"_"+(size-len(str(item)))*"0"+str(item)+out[1] for item in range(1, int(n)+1)]:
shutil.copyfile(orig, item)