410gone.click

©2021 sumomo-99

[Linux] 拡張子を指定したランダムなファイル名の空ファイルを作成する方法

更新日: 2021-04-11T08:11:58.455Z

Linux

ランダムなファイル名を持つ空のファイルを大量に作る方法を紹介します。
次のような条件の空ファイルを作成してみます。

  • 拡張子は.txt .docx .xlsx .pdf .pngの5つ
  • ファイル名は英数字から5文字をランダムに選ぶ
  • 拡張子ごとに10個のファイルを作成する。
  • ファイルは空ファイルとする(0バイトファイル)。

なお、以降の実行例はUbuntu 17.10で確認しています。

ランダムなファイル名を持つ空ファイルを作成するワンライナー

$ for i in .txt .docx .xlsx .pdf .png; do cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 5 | head -n 10 | sed -e 's/$/'$i'/g'| xargs touch ; done

実行結果の例

以下のようなランダムなファイル名のファイルが作成されます。※ファイル名はランダムのため、実行ごとに異なるファイル名になります。

$ for i in .txt .docx .xlsx .pdf .png; do cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 5 | head -n 10 | sed -e 's/$/'$i'/g'| xargs touch ; done
$ ls
0KpnF.pdf   GiKWP.pdf   NRe4N.png   VeiEo.docx  hujnD.png   taLjh.png
0i4wh.docx  I0rj0.txt   OF6yd.txt   WMmpb.txt   j7VU1.xlsx  wcUVh.docx
4Edcw.txt   I9DUD.pdf   OVToR.pdf   aLxxW.xlsx  orJzM.xlsx  wdymZ.png
4s6zn.xlsx  Ir739.pdf   PpyYH.pdf   bni1p.xlsx  qLNPO.pdf   xIz2C.docx
62Vro.docx  LGSGy.pdf   QZoNr.xlsx  eJRtN.txt   qanNN.pdf   xKHL2.png
CFLIM.txt   LSEBt.txt   Qcz7Z.docx  eh5z9.docx  qe2aq.png
CrysN.txt   Mk2x0.png   Qxdfk.png   fJVRh.txt   sGk6P.docx
FjReU.xlsx  N29pn.png   Uu21h.pdf   fYzcc.txt   tDpyb.docx
GEuWE.png   NQtyN.xlsx  VVryU.xlsx  fz0Am.docx  tRYOY.xlsx

説明

for i in .txt .docx .xlsx .pdf .png;

bashfor文で拡張子の数だけループを回します。作成したい拡張子に応じて拡張子の変更や追加、削除を行ってください。

cat /dev/urandom

ランダムデバイス(/dev/urandom)で乱数データを取得します。

tr -dc 'a-zA-Z0-9'

取得したランダムデータから英数字のみ取得します。
trコマンドの-dオプションで対象文字を削除します。-cオプションを指定することで、'a-zA-Z0-9'の補集合(a-zA-Z0-9以外)を削除対象としています。
ファイル名に記号などを含めたい場合は、この集合を変更してしてください。

fold -w 5

foldコマンドを利用して、取得した英数字を1行5文字として改行します。この数値によってファイル名の長さが決まります(拡張子を除いた長さ)。
ファイル名の長さを変更したい場合は、ここの数値を変更してください。

head -n 10

headコマンドで先頭の10行のみ取得します。この数値によって拡張子ごとに作成するファイル数が決まります。
拡張子ごとに作成するファイル数を変更したい場合は、ここの数値を変更してください。

sed -e 's/$/'$i'/g'

行末に拡張子を追加します。sedコマンドで行末を拡張子に置き換えます。'$i'にはforループでループ対象となっている拡張子が代入されます。

xargs touch

touchコマンドで空ファイルを作成します。xargsコマンドでパイプ経由で受け取ったファイル名を引数として渡しています。
 
以上、拡張子を指定したランダムなファイル名の空ファイルを生成する方法の紹介でした。