LoginSignup
13
8

More than 5 years have passed since last update.

シェルで複数ファイルのリネーム

Last updated at Posted at 2015-12-07

ファイルが1、2個ならデスクトップでやるけど、10個くらいになってくると面倒だし間違いそうなので1発でガッとファイルをリネームしたかった。

sed とパイプを使って:

for a in *; do b=`echo "${a}" | sed -e "s/^/prefix-/"`; mv "${a}" "${b}"; done

でファイルの先頭に prefix- という文字列を追加してる。

読みやすくすると:

for a in *; do # カレントディレクトリのファイル一覧を取得
  b=`echo "${a}" | sed -e "s/^/prefix-/"` # sed で `prefix-` という文字列を追加
  mv "${a}" "${b}" # 移動
done

sed の置換は vim と同じなので sed 初めて使ったけどサクッとできた。


追記:

コメントでもっとシンプル + 安全にやる方法を教えていただきました。

for a in * ; do
    mv -i "${a}" "prefix-${a}"
done

ディレクトリを除外したい場合は、

for a in * ; do
    [ -f "${a}" ] && mv -i "${a}" "prefix-${a}"
done

とするといいようです。

13
8
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
8