다른 이름과 다른 확장자를 가진 일부 파일을 만들려고 합니다. 다음과 같은 이름과 확장자를 가진 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)