• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:findコマンドの挙動について)

findコマンドの挙動について

このQ&Aのポイント
  • シェルで3か月前のファイルを削除するようにしたのですが実行すると想定と異なる挙動になり困っています。
  • シェル自体は他の同バージョンのOSで実績があり問題なく動作したのでこの環境のみ挙動が違うのが分からない状態です。
  • findコマンドの-mtimeオプションで日数の部分が正しく取得できずエラーになっています。何かアドバイスはありますか?

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

  • ベストアンサー
  • asciiz
  • ベストアンサー率70% (6871/9771)
回答No.1

days 環境変数に、"+93\r" が入っている、この\rが問題ということではないでしょうか。 \rはキャリッジリターン、CR です。 CRというと、Windows系のテキストファイルでは、行末は CR+LF、すなわち \r\n となっています。 このファイルをLinuxの世界から見ると、行末 \nがあるので改行は同じように認識してくれますが、データ末に特殊なコード \r がついているように見えます。 前段でそういったテキストファイルを加工してパラメータを取り出している、たとえばcsvファイルの最後の項目だったとすれば、\rが付いてきてしまうのも納得できます。 予防的に、もし \r があれば削除しておく、という処理を入れておくのはどうでしょう…。(daysの値を設定するところで。)

barash
質問者

お礼

コメントのほうありがとうございます。 この質問を投稿した後に使用しているファイルがおかしい可能性があることに気が付きファイルの方新規で作成し直しましたらうまく動作しました。 ご指摘の通りおそらくファイル自体window端末で作成したものlinux環境に配置した際コード変更の設定を誤ったのかもしれません。 ファイルは一度作成したら要件変更がない限り変更はしないので手順等で改行コードの確認を取り込むようにします。 ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A