mv コマンド「ファイル名変更と移動」
mv
mv コマンドはファイル名を変更するときやディレクトリの間を移動するときなどに使われる、ファイル名の変更とディレクトリの移動だと違う機能ではないかと思ってしまうが、ファイル名というのは正確にフルパス表現するとディレクトリ名も入ってくるそう考えると腑に落ちてもらえると思う。
ファイルを上書きして良い場合というのは限定的な場合なので基本的に上書きを禁止するような使い方が安全だ。
共通
mv が使える状態か確認
which mv
バージョン確認
mv --version
注意したいのは Mac と Linux(Ubuntu) とではオプションの付け方が若干ことなる。ここでは両方でうごくようなオプションの書き方を紹介
ファイル構造について
下記のようなファイル構造が存在した場合
tree ~/tmp/mvtest ├── animal │ ├── cat.jpg │ └── mushroom.jpg ├── flower.jpg ├── img │ ├── bird.jpeg │ ├── cabbage.jpg │ ├── dog.jpg │ ├── horse.jpeg │ └── sunflower.jpeg ├── jpegdir ├── jpgdir └── plant └── rice.jpg
サンプルの再現
下記のコマンドをつかうと上記のようなファイル構造がつくれますよ。
mkdir -p ~/tmp/mvtest && \ cd ~/tmp/mvtest && \ mkdir animal plant img jpgdir jpegdir && \ touch flower.jpg && \ touch plant/rice.jpg && \ touch animal/cat.jpg animal/mushroom.jpg && \ cd img && \ touch bird.jpeg dog.jpg horse.jpeg sunflower.jpeg cabbage.jpg
下記のディレクトリに移動している過程で
cd ~/tmp/mvtest
ファイル名の変更
flower.jpg を rose.jpg に変更したい場合
mv -n flower.jpg rose.jpg
ディレクトリの移動
animal ディレクトリの mushroom.jpg を plant ディレクトリに移動
mv -n animal/mushroom.jpg plant
ディレクトリの移動組み合わせ
img ディレクトリの 拡張子 jpeg のファイルを jpegdir へ移動、拡張子 jpg のファイルを jpgdir へ移動
mv -n img/*.jpeg jpegdir && \ mv -n img/*.jpg jpgdir
複数ファイルの名前同時変更は mv コマンドのみでは難しいので rename コマンドというものもあります。2021年10月現在では Mac では rename コマンドは入っていないようです。
ディレクトリ名の変更
ファイルと同様ディレクトリ名の変更もできるがディレクトリ内にファイルが存在する場合は そのファイルもフルパスでいくとファイル名が変更になるので注意
animal ディレクトリ名を animal-img という名前に変更
mv -n animal animal-img
コメント
0 件のコメント :
コメントを投稿