※ ChatGPTを利用し、要約された質問です(原文:findコマンドの挙動について)
findコマンドの挙動について
このQ&Aのポイント
シェルで3か月前のファイルを削除するようにしたのですが実行すると想定と異なる挙動になり困っています。
シェル自体は他の同バージョンのOSで実績があり問題なく動作したのでこの環境のみ挙動が違うのが分からない状態です。
findコマンドの-mtimeオプションで日数の部分が正しく取得できずエラーになっています。何かアドバイスはありますか?
いつもお世話になっております。
シェルで3か月前のファイルを削除するようにしたのですが実行すると想定と異なる挙動になり困っております。
シェル自体は他の同バージョンのOSで実績があり問題なく動作したのでこの環境のみ挙動が違うのが分からない状態です。
以下の定義で処理を行っております。(一部パス等は変えております。)
find ${logfile}* -daystart -mtime ${days} -exec rm -f {} \;
変数「logfaile]」には別ファイルで設定しているファイルパスが入ります。
変更「days」には別ファイルで設定している日数(今回は3か月なので+93)が入ります。
sh -xで実行したときの結果が以下になります。
find 対象ファイル名 -daystart -mtime $'+93\r' -exec rm -f '{}' ';'
' から `-mtime'な引数 `+93
対象の日数の部分でうまく値が取得できずその部分がエラーになってしまっています。
何かお気づきのことがありましたらアドバイスの方よろしくお願いいたします。
お礼
コメントのほうありがとうございます。 この質問を投稿した後に使用しているファイルがおかしい可能性があることに気が付きファイルの方新規で作成し直しましたらうまく動作しました。 ご指摘の通りおそらくファイル自体window端末で作成したものlinux環境に配置した際コード変更の設定を誤ったのかもしれません。 ファイルは一度作成したら要件変更がない限り変更はしないので手順等で改行コードの確認を取り込むようにします。 ありがとうございました。