임의의 이름으로 여러 파일/디렉토리를 만드는 방법은 무엇입니까?

임의의 이름으로 여러 파일/디렉토리를 만드는 방법은 무엇입니까?

다른 이름과 다른 확장자를 가진 일부 파일을 만들려고 합니다. 다음과 같은 이름과 확장자를 가진 3개의 파일을 만들고 싶다고 가정해 보겠습니다.

File001.000
File002.001
File003.002

또는 알파벳순으로 확장합니다.

File001.A
File002.B
File003.C

또한 임의의 이름과 확장자를 가진 파일을 만들 수 있으면 더 좋을 것입니다.

Filexct.cbb
Filedht.ryt
Filefht.vbf

답변1

내가 찾을 수 있는 가장 간단한 방법은 다음과 같습니다.

touch $(paste -d '.' <(printf "%s\n" File{001..005}) \
                    <(printf "%s\n" {000..004}))

이것은 생성됩니다

File001.000  File002.001  File003.002  File004.003  File005.004

이것이 어떻게 작동하는지 보려면 각 명령이 인쇄하는 내용을 살펴보십시오.

$ printf "%s\n" File{001..005}
File001
File002
File003
File004
File005

$ printf "%s\n" {000..004}
000
001
002
003
004

$ paste -d '.' <(printf "%s\n" File{001..005}) \
>              <(printf "%s\n" {000..004})
File001.000
File002.001
File003.002
File004.003
File005.004

따라서 그들은 함께 확장됩니다.

touch File001.000 File002.001 File003.002 File004.003 File005.004 

임의의 이름으로 5개의 파일을 만드는 것이 훨씬 쉽습니다.

$ for i in {1..5}; do mktemp File$i.XXX; done
File1.4Jt
File2.dEo
File3.nhR
File4.nAC
File5.Fd8

임의의 5개 알파벳 문자 이름과 임의의 확장자를 가진 5개의 파일을 생성하려면 다음 명령을 사용할 수 있습니다.

 $ for i in {1..5}; do 
    mktemp $(head -c 100 /dev/urandom | tr -dc 'a-z' | fold -w 5 | head -n 1).XXX
   done
jhuxe.77b
cwvre.0BZ
rpxpp.ug1
htzkq.f9W
bpgor.Bak

마지막으로 확장자 없이 임의의 이름을 가진 5개의 파일을 만들려면 다음을 사용하세요.

$ for i in {1..5}; do mktemp -p ./ XXXXX; done
./90tp0
./Hhn4U
./dlgr9
./iVcn4
./WsJIx

답변2

네가 원한다면보장하다서로 다릅니다 mktemp. 다음을 확인하세요.

$ mktemp 
/tmp/tmp.r8FumWPhn5
$ mktemp XXXXXXXX.tmp
Pu4Ii6Sf.tmp

답변3

임의의 이름과 확장자를 사용하여 파일과 디렉터리를 만드는 간단한 방법을 찾았습니다.

임의의 확장자를 가진 임의의 파일을 생성하려면 다음 명령을 사용하십시오.

$ mktemp XXX.$(mktemp -u XXX)
-u, --dry-run
    아무것도 생성하지 말고 이름만 인쇄하세요(안전하지 않음).

여러 파일을 만들려면 루프 내에서 위 명령을 사용하십시오.

$ for create in $(seq 5); do
      mktemp XXX.$(mktemp -u XXX);
  done

nDq.NoB
mT2.Ns0
DEN.aga
K7b.HCf
pNC.q9N

마지막으로 여러 디렉터리를 생성하려면 mktemp 및 해당 -d옵션을 사용하세요.

mktemp -d XXX.$(mktemp -u XXX)

관련 정보