반응형
테스팅 파일 천 개 만들기
yes와 shuf 그리고 pwgen을 활용하여 천 개의 테스팅 파일을 순식간에 만드는 방법입니다. 생성된 파일은 '/usr/share/dict/words'의 줄 수가 104,334 줄이 되는 파일을 샘플로 택했기 때문에 각각 수많은 줄을 갖고 있는 쓸만한 테스팅 파일입니다.

명령어 분석
yes 'shuf -n $RANDOM -o $(pwgen -N1 10).txt /usr/share/dict/words' | head -n 1000 | bash
이 명령어는 여러 개의 명령어와 셸 기능을 결합하여 다음과 같은 작업을 수행합니다:
yes명령어:yes 'shuf -n $RANDOM -o $(pwgen -N1 10).txt /usr/share/dict/words':yes명령어는 지정된 문자열을 무한히 출력합니다.- 여기서는
'shuf -n $RANDOM -o $(pwgen -N1 10).txt /usr/share/dict/words'명령어를 무한히 출력합니다.
head -n 1000명령어:| head -n 1000:- 파이프(
|)를 사용하여yes명령어의 출력을head명령어로 전달합니다. head -n 1000은 첫 1000개의 라인만 출력합니다.- 따라서,
'shuf -n $RANDOM -o $(pwgen -N1 10).txt /usr/share/dict/words'명령어가 1000번 출력됩니다.
- 파이프(
bash명령어:| bash:- 파이프(
|)를 사용하여head명령어의 출력을bash셸로 전달하여 실행합니다. - 결과적으로
'shuf -n $RANDOM -o $(pwgen -N1 10).txt /usr/share/dict/words'명령어가 1000번 실행됩니다.
- 파이프(
전체 흐름 설명
pwgen -N1 10:- 10자리 암호를 하나 생성합니다. 예를 들어
abcd1234ef와 같은 문자열을 생성합니다.
- 10자리 암호를 하나 생성합니다. 예를 들어
$(pwgen -N1 10):- 명령어 치환으로
pwgen명령어의 출력을 실행 시점에 삽입합니다. - 예를 들어,
abcd1234ef라는 문자열을 삽입합니다.
- 명령어 치환으로
shuf -n $RANDOM -o abcd1234ef.txt /usr/share/dict/words:/usr/share/dict/words파일에서$RANDOM개수만큼의 라인을 무작위로 선택하여abcd1234ef.txt파일에 저장합니다.$RANDOM은 셸에서 무작위 정수를 생성하는 변수입니다.
yes명령어로 1000번 반복:yes명령어는 위의shuf명령어를 1000번 출력합니다.
bash로 실행:- 1000번 출력된
shuf명령어를bash셸로 전달하여 실제로 실행합니다.
- 1000번 출력된
결과
결과적으로, 현재 디렉터리에 1000개의 파일이 생성되었으며, 각 파일은 /usr/share/dict/words 파일에서 무작위로 선택된 라인들을 포함하고 있습니다. 파일 이름은 무작위로 생성된 10자리 문자열입니다.

정리
yes명령어와head,bash를 조합하여 명령어를 반복 실행할 수 있습니다.shuf와pwgen명령어를 사용하여 파일 이름을 무작위로 생성하고, 파일 내용을 무작위로 선택할 수 있습니다.- 이 명령어 조합을 통해 다수의 파일을 자동으로 생성할 수 있습니다.
이와 같이 yes, head, bash 명령어를 결합하여 다양한 자동화 작업을 수행할 수 있습니다.
반응형
'Linuxpia > 리눅스 사용 팁' 카테고리의 다른 글
| [리눅스팁] 상황에 맞는 파일 빨리 찾는 요령 (32) | 2024.06.03 |
|---|---|
| [리눅스 팁] 개성 있는 파일 이름의 빈 테스팅 파일 천 개 만들기 (34) | 2024.06.01 |
| [리눅스명령어] 리눅스명령어 yes (40) | 2024.05.30 |
| [리눅스 팁] 테스팅용 파일 생성, shuf과 pwgen 활용 (34) | 2024.05.29 |
| [리눅스 팁] 'sed' 명령에서 다양한 구분자(delimiter) (45) | 2024.05.26 |