• 締切済み

unixのfindコマンドについて

findコマンドでファイルを日付検索をする場合、一日前と検索してもタイムスタンプから24時間単位になってしまいます。単純に日にちが違うだけで検索するにはどうしたらいいでしょうか? 例ファイルpm11:00 を翌日am2:00にfindコマンドで検索したとき3時間しかたってなくても1日前の条件で検索できるでしょうか?

  • devid
  • お礼率34% (166/478)

みんなの回答

  • ts3m-ickw
  • ベストアンサー率43% (1248/2897)
回答No.1

-daystartオプションでなんとかなるんじゃないかな? -atime,-mtime,-ctimeの時間の基準を24時間前ではなく、コマンドを実行日の0時にするオプションです。

devid
質問者

補足

-daystartオプションは、現在使用のサーバには入っていないようです。

関連するQ&A

  • findコマンド

    findコマンドを用いて”昨日以降に変更・更新のあったファイル”を検索するにはどうしたらよいでしょうか? ご教授ねがいます。 また、-ctime、-atimeを用いたときの日付の±はどういう意味になるのでしょうか? 上記質問とあわせて教えていただければ幸いです。

  • unixのfindコマンド

    unixのfindコマンドで、ある複数のディレクトリから指定のファイル名だけを 検索し、その結果をgrepしたいのですが、 例えば 01_dir 02_dir : 11_di : 21_dir : と言うディレクトリがあります。 そこから、「0」で始まっているディレクトリの中なら拡張子が*.txtを 検索し、その検索したファイルに対して、grepを実行したいのですが、 上手くいきません。 もちろん、各ディレクトリには、「.txt」以外のファイルもありますし、 ファイル名にも条件を付与したいです。 以下の様に、 find . -name "0*_dir" -type d -print | xargs ls -l *.txt | grep "検索文字" find . -name "0*_dir" -type d -print | xargs ls *.txt | grep "検索文字" find . -name "0*_dir" -type d -print | xargs -i ls -l '{} /*.txt' | grep "検索文字" find . -name "0*_dir" -type d -print | xargs -i ls {} "検索文字" とやってみたのですがだめでした。 find ./ -type d \( -name '1_*dir' -o -name '2*_dir' -o -name '3*_dir' \) -prune -o -type f -print と「-prune」で除外するディレクトリを指定すればできなくはないですが、 すべてのディレクトリ書くのはいい方法ではないです。 よい方法をお願いします。 OSは、Solaris 11.3です。

  • UNIXでfindとls

    UNIXでファイルを検索するのにfindコマンドを使用してますが 情報として、パス名だけが表示されます。 >find . -name ghi -print ./ghi ./abc/def/ghi ./abc/def/ghi/ghi これを、ファイルのいろんな情報を見ることはできないでしょうか? パイプを使おうと思ったのですが、いまいちわかってなくて できませんでした。

  • cshでfindした一覧をタイムスタンプ順に並べる

    findコマンドを使ってたとえば、 find . -name \*text とすると、一覧が表示されますが、その一覧をタイムスタンプの新しい順に表示させるにはどんな、コマンドがありますか? -exec というものがあると聞いたのですが、どうもうまくいきません。正しい文法を知っている方がおりましたら、そちらもお願いします。

  • コマンドプロンプト fcコマンド不具合について

    コマンドプロンプト内のfcコマンド(差分確認コマンド)について下記の不具合がありました。 調べたのですが、helpコマンドなどでオプションなど調べたのですが 原因不明です。 ご存知の方は、ご指摘お願いします。 1.2つのLISTを作成(中身はdir結果)したが、本来であればこの   2つのLISTは差分が無い状態が正しいがfcをすると差分が生じた。   差分が出た箇所は、dir結果のLIST内の定義ファイルのタイム   スタンプが同じdirコマンドで取得したのに時間が1分のずれが   生じていた。 2.(1)のタイムスタンプが相違しているファイルをはさむかのように  全く時間・日付・サイズ・ファイル名・すべてをとっても差分がまったくないファイルがfcで差分がでているのです。 上記の2点が今回原因不明の事象です。 知っているかたがいましたら教えてください。 宜しくお願いします。

  • findコマンドで複数条件を設定する方法

    findコマンドを使用して、最終更新日から10日以上経過しているかつ、拡張子が.gz 以外のファイルを圧縮する方法を教えていただきたいです。 それぞれ1つの条件を満たすコマンドはわかるのですが、2つの条件を満たすコマンドをどの様に作成すればよいかわかりません。 最終更新日から10日以上経過したファイルを圧縮 find . -mtime +10 -exec gzip {} ¥; 拡張子が.gz意外のファイルを圧縮 find . -name "*.gz" -prune -o -type f -print -exec gzip {} ¥; よろしくお願いします。

  • UNIXでのコマンドエラーについて

    初心者です。 UNIX上で下階層を含めて存在するファイルの数を知りたかったので ネットで検索して for d in `find . -type d`; do echo $d,`ls "$d" | wc -l`; done というコマンドをみつけて実行してみたのですが、 for: コマンドが見つかりません. d: 定義されていない変数です. というエラーとなってしまいます。 UNIX上のなにか制約があるのかどうかよく判りません。 どなたかなぜエラーが出るのかとこのコマンドを正常に実行する方法を教えていただけないでしょうか?

  • DOS findコマンドのバッチでストールする

    DOSコマンドプロンプトで.batファイルを作成。 内容は find "2007:01" access_log_2007_04_11.txt >log2007041101.csv このバッチファイルを、検索するaccess_log_2007_04_11.txt と同じフォルダー上において、ダブルクリックで起動すると。 コマンドプロンプトが開くのだが、以前実行した、 find "2007:00" access_log_2007_04_05.txt >log2007040500.csv が、延々と実行され。 コマンドプロンプトを閉じても log2007040500.csv を、消しても消しても、作成される。 システムを落とすしかなくなる。のです。 4月の頭では正しく動作していたんですが???

  • 最近開いたファイルをリストアップする

    直前まで(つまり、タイムスタンプが最近のもの)開いたファイルあるいは編集したファイルをプロンプトで返したいのですが、どのようなコマンドがありますでしょうか?findやlocate and sortなどがあると思いますがタイムスタンプのところでちょっと思いつきません。 ご存知の方、宜しくお願いします。

  • 古いファイルを削除したいのですが。。。

    こんにちわ。 findコマンドを使って、あるディレクトリにどんどんできるファイルの古くなったものを削除したいのです。 例えば、7日以上更新がないものを削除したく、 # find /hoge/backup -mtime +7 -a -type f -exec rm -f {} \; というコマンドを実行してみましたが、結果は、削除されず残ったままで、しかも一部のファイルが元々古い日付だったものが、実行日時でタイムスタンプが書き変わってしまってます。 シェルはbashでもcshで試しても同じでした。 どうすればよいかご教示お願いできますでしょうか?

専門家に質問してみよう