予測不可能な決定系

決定論的なのに予測が不可能……つまり, そういうことだよ

ファイル,ディレクトリ名を一括変換

ちょっとディレクトリの名前を変更したかったけど数が多かったし(10前後だけど),
こういうときこそコマンドでやればいいんだろうけど,やり方しらない.

いい機会だしちゃんと覚えようと思い調べたから覚書.


名前の変更自体は mv コマンドで出来るのは知ってたし,for とか使ってループ使えるのも知ってるから,
そのへんの組み合わせかなと思って調べたら,その名もずばり

rename
というコマンドがあった.(mv と for 使ってもできるけど,こっちのほうが簡単)

構文
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]

使い方は
UbuntuTips/FileHandling/RenameCommand - Ubuntu Japanese Wiki
がわかりやすかった.

perlexpr は Perl の表現らしいけど,Perl 書いたことない.でも

s/oldname/newname/
って感じで書けばよさそう.
[ files ] は変換対象とするディレクトリやファイル名.
正規表現も使える(寧ろそれがメイン?)から,あとはなんとなく * とか ^ とか $ とか
使って書けばそれなりに使えそう.


例えば,カレントディレクトリに

[ 剣, 傘, おでん ]
っていうファイル(またはディレクトリ)があって,
rename 's/^/約束された勝利の/' *
ってやれば
[ 約束された勝利の剣, 約束された勝利の傘, 約束された勝利のおでん ]
ってなるはず.(もっとちゃんとした例は上記リンク参照)


「一括置換とか怖くていきなり実行できるわけねぇだろぁ〜!」
という僕みたいなチキンはオプションに[ -n ]を付ければ実行した場合の結果のみ表示してくれる(実行はされない).
これで確認して,問題なければ安心して実行すればいい.