カレントディレクトリ以下に名前が YYYYMMDDhhmmss 形式のディレクトリが多数あり、
中にファイルが入っている。
中のファイルを YYYYMMDDhhmmss-元のファイル名 にリネームしてディレクトリの外に出したい。
YYYYはすべて2012。
カレントディレクトリ以下には名前の YYYYMMDDhhmmss 形式のディレクトリのみある。
for f in 2012*/*; do mv -v $f ${f/\//-} ; done
${f/\//-} で 変数 f の中の / を - に置換している。
$ mkdir 20120830115739 $ mkdir 20120830115943 $ mkdir 20120830141338 $ mkdir 20120830142421 $ ls 20120830115739 20120830115943 20120830141338 20120830142421 $ touch 20120830115739/a.txt $ touch 20120830115943/b.txt $ touch 20120830141338/c.txt $ touch 20120830142421/d.txt $ for f in 2012*/*; do mv -v $f ${f/\//-} ; done `20120830115739/a.txt' -> `20120830115739-a.txt' `20120830115943/b.txt' -> `20120830115943-b.txt' `20120830141338/c.txt' -> `20120830141338-c.txt' `20120830142421/d.txt' -> `20120830142421-d.txt' $ ls 20120830115739 20120830115943 20120830141338 20120830142421 20120830115739-a.txt 20120830115943-b.txt 20120830141338-c.txt 20120830142421-d.txt