#!/bin/bash
###変数宣言###
修正しました。
bashなどのソースコードを記載する場合、コードブロックを使用してください。
失礼いたしました。コードブロックが何か確認して修正致しました。
以下のコマンドでどのようなエラーが出るかを貼っていただけますか?
TOPDIRは検索するフォルダです。
```bash
find ${TOPDIR} -mtime +10 -exec gzip {} ¥;
```
現在の仕様では10日前のファイルをgzipするとありますが、10日より以前にスクリプトが生成したgzipファイルも圧縮するということでよいのでしょうか?
```
topdir="探したいdirフルパス"
```
仮fileを日付別に作成して確認してみました。それ以上前のものに関してはエラー吐かずに
gip化されました。ありがとうございます。
ご指摘の通り、既にgip化されているものに関しては静観です。
findで! -name "*.gz"を追加すれば解決しました。
最初、findで検索したfileをxargsで引き渡し別dirにcpさせる
というスクリプトを書いたのですが、
もっと変数に入れてのちの修正しやすさを意識するよう指示されたので、
変数にどうやったら入るかを検討している最中です。。
よくわかりませんが、結局質問内容については find で解決したということでしょうか?
書き方、質問の仕方が悪く申し訳ありません。
```
check_day=`date --date '10 days ago' '+%Y%m%d'`
```
この部分が10日以上前に作成されたfileでも検索可能にしたいというのが
質問内容になります。
findで検索して、それをxargsなどで引き渡してgipかけたり、cpさせたりは実装可能でした。
が、長いので変数に代入するよう指示されているのです。
明確に何日前作成分ならば最初に投稿したもので対応出来ていますが、
何日以上前とすると、-mtimeや-ctimeを変数に入れる事が私が出来ていなく質問しました。
であれば、うまくいかない具体例を記載した方が良いと思いますよ。
find -mtime などで対応するのがスタンダードだと思いますので、その質問をそのまま回答するならば、「それでうまくいく」になりますので。
何度も質問して申し訳ありません。-exec gzip {} ¥;
zipさせた後、別のcpする処理を走らせたいのですが、
¥;はどういう単語で検索したらネットで詳細出てくるのでしょうか??
exec単品だと何をしているのが{}に入れてあげているというのは理解できたのですが、
そのあと\;に関して、何を意味してるのかが理解できてなく・・・
> ¥;はどういう単語で検索したらネットで詳細出てくるのでしょうか??
man findです。検索せずとも、man findというコマンドを実行すれば説明が詳しく出てきます。
回答2件
あなたの回答
tips
プレビュー