sachin21's blog

技術メモブログ

zshを使ってる方必見!一括ファイルリネーム

こんにちは、@sachin21です。

zsh使ってる人多いと思います。大量のファイルを一気にrenameしたい時とか困った事ありませんか。 僕はわざわざシェルスクリプト書いていました...

zmvで何が出来るか

このようなファイルがあったとする。

ls
=> 
fuga1.txt fuga2.txt fuga3.txt fuga4.txt
fuga5.txt fuga6.txt fuga7.txt fuga8.txt

楽に書けるように.zshrcに書いてください〜。

autoload -Uz zmv
alias zmv='noglob zmv -W'

noglobコマンドは引数に通常の zmvは一回のコマンドで複数のファイルをrename出来る

例 :

zmv *.txt fuga_hoge-*.txt

options

-n optionは実際に実行せずにコマンドの内容を出力してくれる。

zmv -n -W '*.txt' '*.rb'

-C optionを使うとcpが使われるので重要なファイルでも安心

zmv -C  '*.txt' '*.rb'

-L optionだとお察しの通りlnコマンドが使えます。けれどハードリンクなので普通に-sを使うといいではないかと

-M optionは必要になる場面が考えにくいけど標準のmvが使われるようになる。謎だ