- 締切済み
unixのfindコマンドについて
findコマンドでファイルを日付検索をする場合、一日前と検索してもタイムスタンプから24時間単位になってしまいます。単純に日にちが違うだけで検索するにはどうしたらいいでしょうか? 例ファイルpm11:00 を翌日am2:00にfindコマンドで検索したとき3時間しかたってなくても1日前の条件で検索できるでしょうか?
- devid
- お礼率34% (166/478)
- その他(インターネット・Webサービス)
- 回答数1
- ありがとう数0
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- ts3m-ickw
- ベストアンサー率43% (1248/2897)
-daystartオプションでなんとかなるんじゃないかな? -atime,-mtime,-ctimeの時間の基準を24時間前ではなく、コマンドを実行日の0時にするオプションです。
関連するQ&A
- 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です。
- ベストアンサー
- Solaris系OS
- UNIXでfindとls
UNIXでファイルを検索するのにfindコマンドを使用してますが 情報として、パス名だけが表示されます。 >find . -name ghi -print ./ghi ./abc/def/ghi ./abc/def/ghi/ghi これを、ファイルのいろんな情報を見ることはできないでしょうか? パイプを使おうと思ったのですが、いまいちわかってなくて できませんでした。
- ベストアンサー
- その他(OS)
- cshでfindした一覧をタイムスタンプ順に並べる
findコマンドを使ってたとえば、 find . -name \*text とすると、一覧が表示されますが、その一覧をタイムスタンプの新しい順に表示させるにはどんな、コマンドがありますか? -exec というものがあると聞いたのですが、どうもうまくいきません。正しい文法を知っている方がおりましたら、そちらもお願いします。
- 締切済み
- Linux系OS
- コマンドプロンプト 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 {} ¥; よろしくお願いします。
- ベストアンサー
- Linux系OS
- UNIXでのコマンドエラーについて
初心者です。 UNIX上で下階層を含めて存在するファイルの数を知りたかったので ネットで検索して for d in `find . -type d`; do echo $d,`ls "$d" | wc -l`; done というコマンドをみつけて実行してみたのですが、 for: コマンドが見つかりません. d: 定義されていない変数です. というエラーとなってしまいます。 UNIX上のなにか制約があるのかどうかよく判りません。 どなたかなぜエラーが出るのかとこのコマンドを正常に実行する方法を教えていただけないでしょうか?
- ベストアンサー
- Linux系OS
- 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月の頭では正しく動作していたんですが???
- ベストアンサー
- その他(OS)
- 最近開いたファイルをリストアップする
直前まで(つまり、タイムスタンプが最近のもの)開いたファイルあるいは編集したファイルをプロンプトで返したいのですが、どのようなコマンドがありますでしょうか?findやlocate and sortなどがあると思いますがタイムスタンプのところでちょっと思いつきません。 ご存知の方、宜しくお願いします。
- ベストアンサー
- Linux系OS
- 古いファイルを削除したいのですが。。。
こんにちわ。 findコマンドを使って、あるディレクトリにどんどんできるファイルの古くなったものを削除したいのです。 例えば、7日以上更新がないものを削除したく、 # find /hoge/backup -mtime +7 -a -type f -exec rm -f {} \; というコマンドを実行してみましたが、結果は、削除されず残ったままで、しかも一部のファイルが元々古い日付だったものが、実行日時でタイムスタンプが書き変わってしまってます。 シェルはbashでもcshで試しても同じでした。 どうすればよいかご教示お願いできますでしょうか?
- ベストアンサー
- BSD系OS
補足
-daystartオプションは、現在使用のサーバには入っていないようです。