rename - ファイル名を変更する
rename [options] expression replacement file...
rename は、 指定されたファイル名を変更する。 その際には、 ファイル名において expression が初めて現れた箇所を、 replacement に変更する。
-s, --symlink
シンボリックリンク名は変更せず、 そのリンク先を変更する。
-v, --verbose
ファイル名が変更されたときに、 そのファイル名を表示する。
-n, --no-act
変更を行わない。 --verbose を追加することにより、 何が行われるかを確認できる。
-a, --all
expression の置換を、 最初のものだけでなくすべてに対して行います。
-l, --last
expression の置換を、 最初のものでなく最後のものに対して行います。
-o, --no-overwrite
既存ファイルを上書きしない。 --symlink が有効であるときは、 既存ファイルをリンク先とするシンボリックリンクを上書きしない。
-i, --interactive
ファイルの上書きにあたって確認を行う。
-h, --help
ヘルプを表示して終了する。
-V, --version
バージョンを表示して終了する。
ファイル名変更をデフォルトで実行する場合、 あるいは --no-overwrite、 --interactive、 --no-act といったオプションをつけずに実行する場合、 その処理を復旧する手立てはない。 ユーザーがファイル名変更を行う権限を持っていれば、 このコマンドは、 問い合わせすることなく、 処理を実行する。 したがって、 root になって /lib ディレクトリ内でこのコマンドを実行すると、 きわめて重大な結果を引き起こす。 行おうとしている操作を十分に理解していない場合には、 コマンド実行前に必ずバックアップをとっておくこと。
ほとんどの標準ユーティリティーと同じく rename は、 端末デバイス (tty と呼ぶ) の標準モードにおいて利用可能である。 つまり tty によって行はバッファリングされ、 ENTER 押下によってユーザー入力確認を行うことができる。 一方 tty を cbreak モードにした場合、 rename がプロンプト入力に利用できるのは、 ただ 1 文字だけとなる。 cbreak モードを設定するには、 たとえば以下のように実行する。
sh -c 'stty -icanon min 1; "$0" "$@"; stty icanon' rename -i from to files
0
要求された変更処理がすべて正常に行われた。
1
変更処理がすべて失敗した。
2
変更処理に失敗したものがあった。
4
名前変更は行われなかった。
64
予期しないエラーが発生した。
foo1, ..., foo9, foo10, ..., foo278 を、 いずれもファイルであるとする。 以下のコマンド、
rename foo foo00 foo? rename foo foo0 foo??
は、 各ファイルを foo001, ..., foo009, foo010, ..., foo278 に変更する。 また、
rename .htm .html *.htm
は、 html ファイルの拡張子を修正する。 また、 名前を切り詰めるために空文字を使って、
rename '_with_long_name' '' file_with_long_name.*
とすることで、 ファイル名の中の部分文字列を削除する。
mv(1)
バグ報告は、 以下にある issue トラッカーを利用すること。 <https://github.com/util-linux/util-linux/issues>.
rename コマンドは util-linux パッケージの一部であり、 以下からダウンロードできる。 Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.