- PR -

シェルスクリプトでファイルの世代管理

1
投稿者投稿内容
ゆいな
ベテラン
会議室デビュー日: 2006/01/19
投稿数: 89
投稿日時: 2006-02-01 12:52
お世話になります。

シェルスクリプトを実行すると、下記のようなファイル名ができます。
_db2ful_20060201124142.tar(_db2ful_`date +%Y%m%d%H%M%S`.tar)

これを含めて最新10世代をあるディレクトリに保存するような
シェルスクリプトが必要なのですが、こういうのって一般的によくある話だと思います。
ひょっとしたら、一行で実現できるような簡単な話しなのかもしれません。

ご存知の方がいらっしゃいましたら、ご教授よろしくお願いします。

かとちん
常連さん
会議室デビュー日: 2003/01/08
投稿数: 46
投稿日時: 2006-02-01 15:45
引用:

シェルスクリプトを実行すると、下記のようなファイル名ができます。
_db2ful_20060201124142.tar(_db2ful_`date +%Y%m%d%H%M%S`.tar)

これを含めて最新10世代をあるディレクトリに保存するような
シェルスクリプトが必要なのですが、こういうのって一般的によくある話だと思います。
ひょっとしたら、一行で実現できるような簡単な話しなのかもしれません。



ファイル名でいつ作成されたのか判断するのでしょうか?

私が作る場合は、ファイルを作成した日時(タイムスタンプ)をfindコマンドで引っ掛けて
その後に実行するコマンドを流しています。
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2006-02-01 16:00
ファイル名の行をソート
尻から10行取り出し
それが、残すファイル。

[ メッセージ編集済み 編集者: MMX 編集日時 2006-02-01 16:46 ]
たお
会議室デビュー日: 2005/11/22
投稿数: 13
投稿日時: 2006-02-01 19:47
ファイルがあるディレクトリで実行。
やっつけ感があるから、あまり好きなやり方じゃないけど。

cp -p $(ls _db2ful_*.tar | cut -b9- |sort -n | tail -10|sed -e s/^/"_db2ful_"/) 格納ディレクトリ

・単純にこれでもいいかも。
cp -p $(ls -tr | tail -10) 格納ディレクトリ

1

スキルアップ/キャリアアップ(JOB@IT)