Command-Line
如何使用隨機名稱創建多個文件/目錄?
我正在嘗試創建一些具有不同名稱和不同副檔名的文件。假設我想創建例如 3 個具有以下名稱和副檔名的文件:
File001.000 File002.001 File003.002
或使用字母副檔名:
File001.A File002.B File003.C
如果我可以創建具有隨機名稱和副檔名的文件,那會更好。
Filexct.cbb Filedht.ryt Filefht.vbf
我能找到的最簡單的方法是:
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