Linuxpia/리눅스 사용 팁

[리눅스 팁] 테스팅 파일 천 개 만들기, yes와 head 그리고 bash 활용

Linuxpia4U 2024. 5. 31. 03:20
반응형

테스팅 파일 천 개 만들기

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

caption: 만들어진 테스팅 파일

명령어 분석

yes 'shuf -n $RANDOM -o $(pwgen -N1 10).txt /usr/share/dict/words' | head -n 1000 | bash

이 명령어는 여러 개의 명령어와 셸 기능을 결합하여 다음과 같은 작업을 수행합니다:

  1. 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' 명령어를 무한히 출력합니다.
  2. 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번 출력됩니다.
  3. bash 명령어:
    • | bash:
      • 파이프(|)를 사용하여 head 명령어의 출력을 bash 셸로 전달하여 실행합니다.
      • 결과적으로 'shuf -n $RANDOM -o $(pwgen -N1 10).txt /usr/share/dict/words' 명령어가 1000번 실행됩니다.

전체 흐름 설명

  1. pwgen -N1 10:
    • 10자리 암호를 하나 생성합니다. 예를 들어 abcd1234ef와 같은 문자열을 생성합니다.
  2. $(pwgen -N1 10):
    • 명령어 치환으로 pwgen 명령어의 출력을 실행 시점에 삽입합니다.
    • 예를 들어, abcd1234ef라는 문자열을 삽입합니다.
  3. shuf -n $RANDOM -o abcd1234ef.txt /usr/share/dict/words:
    • /usr/share/dict/words 파일에서 $RANDOM 개수만큼의 라인을 무작위로 선택하여 abcd1234ef.txt 파일에 저장합니다.
    • $RANDOM은 셸에서 무작위 정수를 생성하는 변수입니다.
  4. yes 명령어로 1000번 반복:
    • yes 명령어는 위의 shuf 명령어를 1000번 출력합니다.
  5. bash로 실행:
    • 1000번 출력된 shuf 명령어를 bash 셸로 전달하여 실제로 실행합니다.

결과

결과적으로, 현재 디렉터리에 1000개의 파일이 생성되었으며, 각 파일은 /usr/share/dict/words 파일에서 무작위로 선택된 라인들을 포함하고 있습니다. 파일 이름은 무작위로 생성된 10자리 문자열입니다.

caption: 크기와 파일명이 각각 다른 1000 개 파일

정리

  • yes 명령어와 head, bash를 조합하여 명령어를 반복 실행할 수 있습니다.
  • shufpwgen 명령어를 사용하여 파일 이름을 무작위로 생성하고, 파일 내용을 무작위로 선택할 수 있습니다.
  • 이 명령어 조합을 통해 다수의 파일을 자동으로 생성할 수 있습니다.

이와 같이 yes, head, bash 명령어를 결합하여 다양한 자동화 작업을 수행할 수 있습니다.

반응형