BioErrorLog Tech Blog

試行錯誤の記録

ファイル名をコマンドで一括変更する | Linux

renameコマンドでできます。

はじめに

aaa-1.txt
aaa-2.txt
aaa-3.txt

このようなファイルがあったときに、

bbb-1.txt
bbb-2.txt
bbb-3.txt

のようなファイル名に、CLIコマンドで一括変更したい。

やり方の備忘録です。

# 作業環境: Amazon Linux 2023
$ cat /etc/*release
Amazon Linux release 2023 (Amazon Linux)
NAME="Amazon Linux"
VERSION="2023"

renameコマンド

renameコマンドを使えば、ファイル名の一括変更が可能です。

コマンドのmanページ:
rename(1) - Linux manual page

基本的な使い方

基本的な使い方はこちら:

rename <置換対象の文字列表現> <置換後の文字列> <ファイル名>...

ここで<置換対象の文字列表現><ファイル名>にはワイルドカードを使うことも可能です。


そのほかオプション情報を含めたhelp情報も置いておきます:

$ rename --help

Usage:
 rename [options] <expression> <replacement> <file>...

Rename files.

Options:
 -v, --verbose       explain what is being done
 -s, --symlink       act on the target of symlinks
 -n, --no-act        do not make any changes
 -o, --no-overwrite  don't overwrite existing files
 -i, --interactive   prompt before overwrite

 -h, --help          display this help
 -V, --version       display version

For more details see rename(1).

ファイル名を一括変更する

では実際にファイル名を一括変更します。

現在下記のようなファイルがあります。

$ ls
aaa-1.txt  aaa-2.txt  aaa-3.txt

このファイル名のaaa部分をbbbに一括変更するには、次のコマンドを実行します。

# rename <置換対象の文字列表現> <置換後の文字列> <ファイル名>
rename aaa bbb aaa-*.txt

実行後、期待通りファイル名が一括変更されました。

$ ls
bbb-1.txt  bbb-2.txt  bbb-3.txt

おわりに

以上、Linuxでファイル名をコマンド一括変更するちょっとした備忘録でした。

どなたかの参考になれば幸いです。

[関連記事]

www.bioerrorlog.work

www.bioerrorlog.work

参考

rename(1) - Linux manual page