
N
예를 들어, 의 복사본을 만들고 번호를 , , 등 a.txt
으로 지정하고 싶다면 ...a1.txt
a2.txt
a3.txt
어떻게 그런 일을 간결하게 할 수 있을까요?
답변1
cp
자체적으로는 한 번에 하나의 복사본(단일 파일)만 만들 수 있지만 빠른 루프를 사용하면 그리 어렵지 않습니다.
for i in {1..10}; do cp a.txt a$i.txt; done
답변2
bash 변수에 N 값이 있다고 가정합니다.
for i in `seq 1 $N`; do cp a.txt a$i.txt; done
또는
for ((i=1;i<=$N;i++)); do cp a.txt a$i.txt; done
또는 Kevin의 답변에 표시된 루프를 사용합니다.
답변3
복사본을 만들기 위해 cp
동일한 파일 시간을 읽을 필요가 없기 때문에 을 사용하는 솔루션은 다소 비효율적입니다. 대신 다음을 사용할 수 있습니다 .N
N
tee
cat a.txt | ( for i in `seq 1 $N`; do echo a"$i".txt; done | xargs tee )
답변4
좀 더 펑키한 것을 원한다면 다음과 같이 할 수 있습니다:
for t in $(seq --format="funky-%03.0f-numbered.txt" 25 3 40); do cp orig $t; done
.