• ベストアンサー

mvコマンドでリネームするときに、長いファイル名の一部だけを変更したい場合の簡単なやり方

ファイル名として、 long_filename_ver001.tar.gz を long_filename_ver001.tar.gz.org にしたいときなど、 mv long_filename_ver001.tar.gz long_filename_ver001.tar.gz.org と打ち込みますが、 mv long_filename_ver001.tar.gz から、 mv long_filename_ver001.tar.gz long_filename_ver001.tar.gz まで簡単に打ち込むショートカットなどありませんか? まず、 mv ファイル名 ファイル名 と左右のファイル名を同じにして、変更先(右側)のファイル名に.orgをつけたり、Ver002にしたり、と一部だけ修正したいのです。 ※似たようなファイル名がたくさんあるので、TAB補完は使わない方法を探しています。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4856/10272)
回答No.2

まずは、 echo long_filename_ver001.tar.gz [Enter] 次に mv !!:1 !!:1:p [Enter] ・・・・※ すると、 ctrl-P で、入力行が、 mv long_filename_ver001.tar.gz long_filename_ver001.tar.gz となります。 いきなり、※のところで、 mv !!:1 !!:1.org とか、 mv !!:1 !!:s/001/002/ とかもできます。man bash 参照のこと。 あるいは別の方法として、設定によっては、行編集の時にコピーペーストもできます。

miraise
質問者

お礼

ご回答ありがとうございます。 mv !!:1 !!:s/001/002/ って、sedと組み合わせているみたいなことができるんですね。 sedもコマンドの一種?だから、コマンドの組み合わせができるということでしょうか。。 manをもっと勉強します。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • astronaut
  • ベストアンサー率58% (303/516)
回答No.3

renameもありますよ~ $ rename .gz .gz.org *001.tar.gz

miraise
質問者

お礼

renameはC言語の関数でしか知りませんでした。 bashのコマンドにもあるんですね。 man renameでさっそく勉強したいと思います。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • mendokusa
  • ベストアンサー率13% (359/2726)
回答No.1

規則性があるならスクリプトを書けばよろしいかと。 mv $1 $1.org

miraise
質問者

お礼

ご回答ありがとうございます。 複数社でごちゃごちゃに管理しているデスマですので、規則性がないのです。 ある人は.org ある人は.bk ある人は.BU ある人はver001 ・・・ 他人の書いた(そしてすでに派遣切りで現場に居ない)人のソースとマージとかしていかなければならないので・・。 ウチは二次受けですが、各社、各人ごとにネーミング規則が違うのです。 コーディング規約を一次受けの会社が作っていないのが問題なんでしょうかね。。 ともかくご回答ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • unix の mv コマンド

    unix の mv コマンドの mv -i directory1 directory2 の場合で、directory2が既存でない場合、directory1をdirectory2 に移動する(変名する)と、 参考書に書いてありますが、既存でないとは、lsでは、ディレクトリー名が出てくるけど、emptyなディレクトリーということでしょうか(ファイルが入ってない)? mv -i filename1 filename2 の場合、filename1 を filename2 に移動(変名する)と参考書にありますが、ファイルの名前だけ変えることじゃなくて中身も変えるということでしょうか? mv コマンドでは、単にファイルの名前だけ変えることはできないということでしょうか? unix超初心者で申し訳ありませんが、よろしくお教えください。

  • tar zcf  で Argument list too long のエラーが出る

    aaa下の中身を圧縮して test.tar.gz を作り、これを bbb下に移動させるのを 以下のようにshで行っています。 #!/bin/bash cd /aaa tar zcf test.tar.gz * mv test.tar.gz /bbb これを、なにか圧縮コマンドのオプションを使って 圧縮元と圧縮ファイル作成先を指定して、1行で済ますことは出来ますか? tar zcf /bbb/test.tar.gz /aaa/*   を試してみましたが、 -bash: /bin/tar: Argument list too long と出てしまいます。ご教授宜しく御願いいたします。

  • [cygwin]ファイル名の補完が効かないファイル

    よろしくお願いします。 windows7 professional edition (64bit)上で、cygwinを利用しています。 cygwinのシェルはtcshです。 ========================================================================= cygwinやlinuxの端末で、Tabキーによるファイル名やパスの補完(?: 入力省略)を よく利用するのですが、時々Tabキーによる補完が効かないファイルがあります。 実行ファイル(.exe)の名前の後にアスタリスク(*)が付いているファイルです。 http://www.seta.media.ryukoku.ac.jp/manual/ubuntu/faq/faq.html 上記のサイトによると、プログラムソースをコンパイルして作成した実行ファイルのことだと 書いてありますが、Tabキーの補完が効かないファイルもおそらくこの類だと思われます。 何とかしてこのような実行ファイルでもTabキーによる補完が効くように設定できないものでしょうか。 ============================================================================= 何か情報お持ちでしたらお願い致します。

  • eo(解凍ソフト)をバッチファイルで動かす

    eoを使って解凍をしようとしています。 マニュアルでは、環境設定を、 「ディレクトリタブ」解凍先:アーカイブと同じ 「解凍タブ」徹底解凍:アーカイブ、解凍後に削除 にタブを入れてやっております。 これをバッチファイルからやろうとしております。 test,bat------------------------- eo -s2-ra+ xxxxx.tar.gz このようにしてやって見ましたが、うまく行きませんでした。 また、helpには、 -taともありましたので、 test,bat------------------------- eo -s2-ta xxxxx.tar.gz これでもやってみましたが、うまく行きませんでした。 小生、どこか、間違えているのであろうと思いますが、分かりません。 宜しくサジェスチョンをお願いいたします。 尚、うまく行くというのは、 xxxxx.tar.gz yyyyyy.gz yyyyyy zzzzzz,txt yyyyyy (tar file) が出てくることを期待しております。 (マニュアルでやるとyyyyyyが出てきます) うまく行かないといっているのは、yyyyyy.gzが出てくる場合を言っています。 小生がやりたいのは、バッチファイルで、マニュアルでやったときと同じ、 yyyyyy(tar file)が出てくることです。 宜しくお願いいたします。

  • 解凍した内容を別のファイル名で保存

    圧縮ファイル($filename.gz)を解凍し、 解凍した内容を別のファイルに書き込み保存するスクリプトを考えています。圧縮されているファイルは解凍するとxmlファイルですが、下記のスクリプトの方法ですと解凍されず、対象のxmlファイルは0バイトです。 「概念から間違っているのかなぁ」と考えもしましたが、 ちゃんと解凍して./aaa/bbb.xmlファイルに書き込む方法がわからず質問させていただきました。 どうかご教授願います。 ※$filename.gzというのはこのスクリプトの直前で作られている圧縮ファイルです。このファイルのファイル名・内容については問題ないことを確認しています。 ============ <?php ~ touch("./aaa/bbb.xml"); $decompress = "/usr/bin/gzip -dc $filename.gz"; $result = system(escapeshellcmd($decompress)); $lastfile = fopen("./aaa/bbb.xml", "rwb+"); $lastview = fwrite($lastfile, $result); fclose($lastfile); ~ ?> ============

    • ベストアンサー
    • PHP
  • /から圧縮したい

    ソラリスが動いているサーバーのデータのバックアップをしようと思っています。 テープデバイス以外の方法をご存知でしたら 教えていただきたいんです。 今やろうとしているのが tar.gzへの圧縮なんですが まとめて圧縮できないかと悩んでおります。 全データを一つにまとめて圧縮なんてできるんでしょうか? コマンドだとファイル名をbackup.tar.gzにするとして tar cvfz backup.tar.gz /  になるのですか?? よろしくお願いします。

  • tar.gzファイルのリストアについて

    Postgres初心者です。 教えてください。 pg_dumpコマンドでdump拡張しのバックアップファイルを生成し、 tarコマンドで****.tar.gzファイルに圧縮しました。 このtar.gzのファイルを直接リストアするコマンドがあれば 教えていただけないでしょうか? -bash-3.2$pg_restore -U postgres -d (データベース名) < ****.tar.gz と実行すると、以下のエラーメッセージが表示されます。 →pg_restore: [アーカイバ] 入力ファイルが有効なアーカイブではないようです。 -bash-3.2$gunzip -C ****.tar.gz | pg_restore -d (データベース名) と実行すると、以下のエラーメッセージが表示されます。 →pg_restore: [tarアーカイバ] tarアーカイブ内でファイルtoc.dat用のファイルヘッダがありませんでした よろしくお願い致します。

  • tiny-coreに.tar.gzをいれたいです

    tiny-core-linuxにblenderの最新版をいれたくて.tar.gzファイルをダウンロードしたのですがインストールのしかたがわかりません。usbにファイルは入っていて場所は"/mnt/sdb1/ファイル名.tar.gz"です。 どんなコマンドを打てば良いのでしょうか。よろしくお願いします。

  • 解凍ファイル

    ABファイルを解凍したいんですが 「ファイル名.ara.abはアーカイブファイルではありません。」 と出てしまいます。 今使っているソフトなんですがなんていうソフトか忘れたんですが、「.lzh .zip(pass) .bh .bz2 .cab .gz .tar .tar.bz2 .tar.gz .b64 .xxe .uue .exe .tar.gz」に圧縮できます。 abファイルは解凍できませんでしたが、aaファイルは解凍できました。 ABファイルが解凍できるソフトってないですか? 解凍お願いします。

  • FTPコマンドで、

    FTPでファイルを毎日自動で取り出す設定を考えています。 cronで、毎日実行させればいいと思うのですが、 コマンドをどう打てばいいか悩んでいます。 仕組み (1)AからBに乗り込んで3つのデータを取り出します。 (2)取り出すデータは、毎日新しく作成されます。  ファイル名は、この3つ。  dataA_20060114.tar.gz  dataB_20060114.tar.gz  dataC_20060114.tar.gz  ファイル名はその日の日付が付けられる。 (3)取り出すもとのフォルダには、  違う日付のファイルが同居しており、  やみくもに全部コピーするコマンドは使えない。 取り出したいファイル名が日々変わるので、 FTPを自動化させる上で、 なにか良いコマンドは無いでしょうか?

このQ&Aのポイント
  • 瞬間接着剤でメガネが固着してしまった場合、はがすのは難しいのか検証します。
  • アロンアルフア専用リムーバーを使用すると、塗装面やプラスチック面を溶かす可能性があるので注意が必要です。
  • 固着したメガネをはがす方法がわからない場合は、諦める前に専門家に相談しましょう。
回答を見る