ディレクトリの中のファイルを 「ディレクトリ名-ファイル名」 にリネームして移動するとか

カレントディレクトリ以下に名前が 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