linuxでcron設定を使ってフォルダ「AAA」からフォルダ「BBB」へ1時間おきにファイル「ZZZ」をコピーしたいと思います。


その際に、たとえば2006年8月23日21時時点でのコピーだとしたらファイル名に「200608232100ZZZ」という名前にリネームしたいと思っています。

21時時点といっても、サーバー時間と考えていただいて結構です。
サーバー時間を取得してそれと「Z」を絡めてリネームしたいということです。

そのジョブファイルの記述を教えていただきたく思います。


当方、Linuxに詳しくないため、全く意味が通らない質問に
なっていたらもうしわけないです。

回答の条件
  • 1人2回まで
  • 登録:2006/08/24 20:44:41
  • 終了:2006/08/24 23:26:12

回答(2件)

id:b-wind No.1

b-wind回答回数3344ベストアンサー獲得回数4402006/08/24 21:44:56

ポイント75pt

#!/bin/sh

BASEDIR=/somewhere/ # ここを編集する

OLDFILE=$BASEDIR/AAA/ZZZ

NEWFILE=$BASEDIR/BBB/date +%Y%m%d%H%M`ZZZ

mv "$OLDFILE" "$NEWFILE"

# このままコピーしてもらえれば動きますが、

# BASEDIR 変数の値は実際のディレクトリに書き直してください。

id:nintendogs

ありがとうございます!

b-wind さんのおしゃれな書き方と、cyanoさんの回答を合体させると成功しました。

ちょっとdateの前の「'」が足りないようでした。

本当に助かりました!!

これからlinux頑張りますのでまた質問の際には知恵をお貸しくださいませ。

2006/08/24 23:25:36
id:cyano No.2

cyano回答回数126ベストアンサー獲得回数02006/08/24 21:46:21

ポイント75pt

mv AAA/ZZZ BBB/`date +%Y%m%d%H%M%S`ZZZ

これでAAAにあるファイルZZZをBBBに20060824214200ZZZという感じの年月日時分秒にリネームしつつ移動しますです

`と'を間違えないように。

あとAAAとBBBはフルパスで指定すること

フォルダAAAにあるファイル(名前や数は毎回違う)のすべてについて個別に同じ対応をするならforeachでループを作ります。

http://man.splitbrain.org/date(1)/ja

id:nintendogs

ありがとうございます。

結果はb-wind さんへのコメントを見てください!

本当にありがとうございました!!

2006/08/24 23:25:39

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません