• ベストアンサー

名前を変更してコピーを行うには

Linuxのシェルスクリプトで、test1.txtというファイルを本日の日付を加えてコピーするにはどのような構文になるのでしょうか? (例:test1.txt → test1_20130531.txt) #!/bin/sh TODAY=`date +%Y%m%d` cp test1.txt test1_$TODAY でしょうか?

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

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

回答待つより試した方が早くないですか? 合っているとは思いますが、拡張子が抜けているでしょうかね。 私なら… #!/bin/sh TODAY=`date +%Y%m%d` cp test1.txt test1_${TODAY}.txt または、 #!/bin/sh cp test1.txt test1_`date +%Y%m%d`.txt でしょうかねぇ……。 # 例に出したのが2ヶ月前というのは微妙に謎ですが。

その他の回答 (1)

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

合ってます。

関連するQ&A

  • cshの文字列置換

    ヤマトです。 cshでファイル文字列を置換したいのですが、分かりません。 環境はRed Had Linux7.2です。 hoge1.txt の中の 'HIDUKE' という文字列を今日の日付に置換し、 hoge2.txt に出力するようなシェルを作りましたが、正常に動作しません。 ====hoge1.txt(置換前)==== 今日はHIDUKEです。 ====hoge1.txt(置換前)==== 今日は030814です。 ====SAMPLE.sh(一部抜粋)==== set TODAY = `date +"%y%m%d"` sed 's/HIDUKE/$TODAY/g' < hoge1.txt > hoge2.txt 以上のようなシェルを作りました。 結果として、hoge2.txtには出力されるのですが、 「今日は$TODAYです」 となってしまいます。 変数の値を置換するにはどのようにしたら良いのでしょうか? 教えて頂けると有り難く思います。宜しくお願いします。

  • UNIXのシェル

    シェルに関して質問です。 0526とか0525のところは一日ごとにフォルダが作成されます。 unix\yasu\0526\hobby\test.txt unix\yasu\0526\hobby\test.txt unix\tomo\0525\hobby\test.txt unix\tomo\0525\hobby\test.txt ./check.sh MMDD 実行するときにMMDDのところに日付を入れてフォルダがあればコマンド1を実行するようにしたいです。 引数に指定した文字を判定するにはどうしたらいいのでしょうか? よろしくお願いします。 ----------------------------- #シェルの名前は「check.sh」です #! /bin/sh if [ $1 = "日付" ] ; then コマンド1 else コマンド2 fi -----------------------------

  • 31日前の日付はいつ?

    #!/bin/sh d=`date +%Y%m%d` 以前に、このシェルで今日の日付を取り出す方法を教えていただいたのですが、 この日付を元に、31日前の日付を取り出す方法はありますでしょうか?

  • findして名前を変えてコピー(redhatlinux)

    初心者で2~3日前からシェルを作っています。 環境:redhatlinux5 AAAディレクトリにある*.txtを全て探して BBBディレクトリに*_mmdd.txtに 名前を変えてコピーしたいのですが どのように書いたらよいのかわかりません。 名前を変えずにそのままコピーは以下のように すればできたのですが・・・ find /AAA -name "*.txt" -exec cp {} /BBB\; そこから先がわからないのでよろしくおねがいします。

  • ニフティでメールフォームを使用する方法

    ニフティの無料HPサービスでメールフォームを使いたいのですがsendmailが使えません。 以下の説明書きがありましたが、シェルスクリプトは知識がなく、ちょっと困っています。 シェルスクリプトでも可能なものなんでしょうか? ---------------------------------------------- perlについて perlのバージョンは5です。 (ただし、perl5での標準的なモジュールは使用できません) パスは、「/usr/local/bin/perl」となります。 スクリプトの1行目は「#!/usr/local/bin/perl」と記述してください。 シェルスクリプト(sh)について シェルスクリプト(sh)に関しては、以下のコマンドがご利用可能となっております。 awk, chmod, date, egrep, expr, grep, mkdir, rmdir, sh, cat, cp, echo, env, find, ls, mv, rm, sed なお、sendmailはご利用いただけません。 --------------------------------------------------

    • ベストアンサー
    • CGI
  • Linuxでシェルスクリプトがフルパスだと実行できない

    Linuxでシェルスクリプトがフルパスだと実行できない こんにちは 現在linuxでシェルスクリプトを記載していて、やっと出来た!と思ったら、なぜかフルパスで実行すると失敗します。 中身は例えば #!bin/sh echo "hello" とし、ファイル名をtest.shとします。 実行時にカレントからだと上手くいきます。 ./test.sh ただし、フルパスで実行するとうまくいきません。 ./home/user/test.sh エラーは以下 bash: ./home/dv3/tet.sh:No such file or directory 所有者はrootでグループもrootにしてあります。 シェルの権限は755にして、rootで実行しています。 なぜカレントだと上手くいき、フルパスだと上手くいかないのでしょうか? パスが必要なコマンドも入っていないのに。。。 どなたかご教授いただけると幸いです。 宜しくお願い致します。

  • ファイルのコピーについて

    RHEL6で、ファイルをコピーする際に以下の2通りのコマンドがあります。 --------------------- #x.txt ファイル内容の出力結果をy.txt に出力 cat x.txt > y.txt #x.txt ファイルをy.txt としてコピーする cp x.txt y.txt --------------------- 前者と後者では、効率的にはどちらも同じでしょうか。 cat(もしくはcp )を使う方がよいという場合、その理由を教えていただけますか。 お願いします。

  • シェルスクリプト 引数の引渡しについて

    こんにちは。現在シェルスクリプトを勉強中なのですがどうしてもわからないことがあり投稿させていただきました。 シェルスクリプトにて作成した引数(引数にスペースがある場合)を別のシェルスクリプトへ渡そうとしたときにうまく引き渡せなくて困っています。 詳しくは以下のスクリプト参照願います。 (1)引数作成のスクリプト _/_/_/_/_/_/_/_/_/_/_/_/ #!/bin/sh a="HELLO" b="\"WOW WOW\"" test.sh $a $b _/_/_/_/_/_/_/_/_/_/_/_/ (2)test.sh _/_/_/_/_/_/_/_/_/_/_/_/ #!/bin/sh echo $1 echo $2 echo $3 _/_/_/_/_/_/_/_/_/_/_/_/ これを実行すると $1=HELLO $2="WOW $3=WOW" となってしまいます。 これを $1=HELLO $2=WOW WOW $3=NULL(空欄) となるようにシェルスクリプトで作成することはできないのでしょうか? ご教授よろしくお願いします。 よろしくお願いします。

  • シェルスクリプト(Bash偏)の実行ファイルに関するご質問があります。

    シェルスクリプト(Bash偏)の実行ファイルに関するご質問があります。 ファイル名を変更するシェルスクリプトをbashで行おうとプログラムを作成したのですが、 実行するとbad interpreter: ディレクトリではありません とメッセージが出て終了します。記述に誤りがあるのか、実行の仕方が悪いのか分かりません。教えて下さい。 シェルの記述内容は ファイル名をtest.sh #!/bin/bash/ -f mv A.txt A.ori exit 実行方法として #>chmod x+a test.sh #>./test.sh で行いました。そうしたら、bad interpreter: ディレクトリーではありません とメッセージが出ます。 ちなみに #>. test.sh で実行するとターミナルがシェルの実行と同時に閉じてしまいますが、シェルを実行したディレクトリーを確認すると、処理が終わっておりました。

  • シェルスクリプトの文字化け

    #!/bin/sh mail -s "test" "info@example.co.jp" <<END メールテスト `ls -alh` END のようなメールを送信するスクリプトがあります。 メールテストは文字化けしませんでしたが、 `ls -alh`で日付が表示される部分で文字化けします。 どうやらls -alhはLinux環境なのでeuc-jpのようでした。 `ls -alh`の部分を文字化けしないようにするにはどのようにしたら良いのでしょうか? シェルスクリプトに詳しい方、教えてください。