linuxによるファイル名置換メモ

 2013-12-15
昔、ファイルサーバのCP932ファイル名をUTF8に一括変更したが
やり方を忘れているので、普通にファイル名変更する方法すらわからなくなってる

というわけで、再度調べたのを忘れないようにメモ


・renameコマンドでいける(linuxなら)
  rename -nvf perl正規表現 [files]

  -n no action
  -v verbose
  -f force



・ファイル名が多すぎるならxargsで渡す
  xargs -n 1 -0 command

  -0 セパレータをヌル文字で渡す
  -n 1 1つづつ渡す(数字を変えれば増える)



・ファイル名再帰的検索はfindで
  find . -type f -print0

  -type fでファイルだけ。dならディレクトリ(以下略)
  -print0 セパレータをヌル文字で。
  最初の「.」は単にカレントディレクトリで検索の意味。



・print0関連は、下記の理由
  UNIX findとxargsコマンドで-print0オプションを使う理由


【組み合わせた例】
 find . -type f -print0 | xargs -0 -n 1 rename 's/変換前/変換後/'

 文字コード変換は、rename部分をiconvとか適当に頑張る。
スポンサーサイト
タグ :
≪ トップページへこのページの先頭へ  ≫