• ベストアンサー

最終更新日のファイルの検索方法

OSはSolaris10を利用しています。 表題通り、あるディレクトリ内の最終更新日のファイルを探すコマンドを探しております。 Ex) date 2009/03/17 pwd /var/tmp 3月13日 20090313_aaa.txt 3月12日 20090312_aaa.txt 3月11日 20090311_aaa.txt 上記の場合、"20090313_aaa.txt"のファイルを指定したい。 ※すべてファイル名には作成日が付くので、ファイル名で最新の日付を探しても良いです。 利用目的としては、最終更新のファイルと別に保存しているファイルと DIFFをとりたいと思ってます。 find -mtime も考えたのですが、毎日バックアップを取っているわけではないので、自分には応用が利きませんでした。 何か良い方法がありましたらぜひアドバイスをお願いします。

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

  • ベストアンサー
  • 3899
  • ベストアンサー率54% (65/119)
回答No.1

# ls -lt じゃダメですか? (新しい順に出ますが)

ninnin1115
質問者

補足

回答有難うございます。 私も今そこまでは、分かりました。 ホントに無知で申し訳ありませんが、lsで表示した内容の先頭だけ 表示させるコマンドってありますでしょうか?

その他の回答 (3)

noname#227025
noname#227025
回答No.4

>lsで表示した内容の先頭だけ >表示させるコマンドってありますでしょうか? ls の出力をパイプで head コマンドにくわせればよいのでは? % ls -t1 | head -1 とか。

ninnin1115
質問者

お礼

有難うございます。 なんとか解決できました。 皆様アドバイス本当に有難うございます。

回答No.3

ご要望のコマンド(オプション)は知りませんが、全体としてスクリプトを組まれるのでしょうからその中で要素を取り出せばいいのではないですか? たとえばperlであれば、 $list = `ls -t /var/tmp/*.aaa.txt`; $list =~ s/\n.*//g; print "$list\n"; とか。 (思いつきで書いてますので、実際に動く保証はありません)

  • 3899
  • ベストアンサー率54% (65/119)
回答No.2

回答になっていませんが > lsで表示した内容の先頭だけ表示させるコマンド 文章の理解力が無くてすみません lsの結果、例えばfile1、file2、test1があった場合は「f」と「f」と「t」が欲しいの? これは当初の質問内容と異なるので違うかな lsの実行結果から先頭文字だけ切り出すシェルでいけそうな気がする… コマンドでドンって表示は難しい気がします。 ls -ltの結果で一番新しいファイルだけ表示させたいってことですか? 例えば「file1」だけ表示させる。 |moreを付けて1画面で表示させるか ls -ltrで順序を逆にして一番下を見るか… これくらいしかわかりません。

関連するQ&A

  • find -exec cp中にファイル更新すると

    find文についての質問です。 findオプション-exec cpによってコピー中に、別のファイルを更新すると、そのファイルがコピーされなくなってしまいました。 例えば、 find /tmp -mtime 1 -name "*" -type f -exec cp … により/tmp直下のファイルをコピー中に/tmp/a直下のファイルを更新すると、そのファイルはコピーできないといった結果になります。 findコマンドのオプションによりコピー可能にすることはできるのでしょうか? osはAIXです。 良い方法をご存知でしたら教えて下さい。お願いします。

  • powershellのファイル名が同一検索

    とある同一フォルダ内に ファイル名 AAA-bbb.txt AAA-ccc.txt 等のファイルがあります。 AAAをキーとして、更新日時が最新の分を 読み込みたいと考えています。 どのように行えばいいのでしょうか。 よろしくお願いいたします

  • ファイルを検索して削除する

    /www 以下のディレクトリーに aaa.txt というファイルが存在する場合、 そのファイルが存在するディレクトリー内の全ての ***.txt を削除したいです。 find /www -name aaa.txt | xargs rm だと、aaa.txt だけの削除になります。 以下も考えましたが、これだと検索対象ディレクトリーが /www だけになります。 #!/bin/bash if test -e /www/aaa.txt then rm -f /www/*.txt fi どのように記述するとよいでしょうか。

  • そのファイル自身の最終更新日を表示

    PHP初心者以下です。 いまサイト作りをしていて,phpを利用して最終更新日を表示したいと思っています。 調べてみると, <?php echo date( 'Y.m.d', filemtime('ファイル名') ) ?> と書けば良いこと分かりました。 この部分をhtmlに組み込み,includeで呼び出すとします。 この時,'ファイル'名に,呼び出し元のhtmlのファイルを指定するようなことはできますでしょうか。 また,調べてみると  <?echo $PHP_SELF;?> で自身のファイル名を書き出すことができるとあったのですが,これを利用したものをhtmlに組み込み,includeで呼び出すと,表示されるのは組み込んだ側のファイルの更新日時になってしまいますよね…? 色々試してみたのですが,うまくいきませんでした。御教示お願いします。 できないと判断された場合は,できないと書いて頂けると助かります。

    • ベストアンサー
    • PHP
  • shellの文法 deffとdo while ??

    最終目標はaaa.c(aaa.txtの中身)とaaa_x.c(bbb.txt)、bbb.cとbbb_x.cのdiffをとり、差分をtxtファイルに出力したいと思っています。 ファイル名の規則は1パターンのみで、_xの前の部分が同じもの通しがdiffをとる対象になります。 (パスはすべてばらばらです) aaa.txtの中身 ファイルパス/ファイル名 a/b/c/aaa.c aa/bb/cc/bbb.c . . . bbb.txtの中身 ファイルパス/ファイル名 x/y/z/aaa_x.c xx/yy/zz/bbb_x.c . . . 考えている処理は (1)aaa.txtからファイル名を抜き出す(basename ?) →結果を変数(AAA)に代入 (2)抜き出したファイル名に_xを追加(.を_x.に置き換え)した変数(BBB)でbbb.txtを検索 (3)変数AAAとBBBのdiffをとる>>txtファイルに出力する shellをうまくつかいこなせず、すみませんが教えていただければと思います。

  • HPスペースの掲示板ログの最終更新日の変更

     自作CGIが置けるHPスペースで掲示板を使用しています。その掲示板である過去ログファイルの最終更新日について質問させてください。  掲示板で書き込みがあるとそのファイルの最終更新日はその書き込まれた日になりますよね。(このファイルをkakolog.datとして最終更新日が11月26日)同じファイル名のkakolog.dat(最終更新日11月20日)のファイルをアップロードして上書きすると最終更新日はファイルの転送を行った日になりますよね。  このようにサーバーにアップロードされたファイルの最終更新日を変更することはできるのでしょうか?(ここで言えば転送された日の11月28日になっている最終更新日を11月26日に戻したい)  よろしく御願いします。

  • バイナリファイルのdiff方法について

    お世話になります。 Linuxのdiffコマンドについてご教示頂けないでしょうか? バイナリファイルの差分をヘキサで表示したいのですが、 (具体的な出力結果のイメージとしては以下の(1)~(3)でできるdiff.txt) xargsやパイプ等を利用して標準出力だけで実現できればと 考えております。(1コマンドで…) 宜しくお願い申し上げます。 ■出力イメージ (1)od -x AAA.bin > AAA_od.bin (2)od -x BBB.bin > BBB_od.bin (3)diff AAA_od.bin BBB_od.bin > diff.txt ■トライしてみてうまくいかなかった例 (例1)diff < ( od -x AAA.bin ) <(od -x BBB.bin ) (例2)xargs -t diff od -x AAA.bin od -x BBB.bin (例3)od -x AAA.bin| diff <od -x BBB.bin

  • 1週間経過したファイルを削除 かつ最新のファイルは残しておきたい

    こんばんは、初投稿になります。 現在Linux系サーバのファイル管理を行っているのですが /tmpディレクトリに定期的ファイルが作成される設定にしております。 そこで1週間以上経過したファイルは削除し、かつ最新のファイルは 1つは残すような仕組みにしたいのですが…cronに登録し find /tmp -mtime +7 -type f -exec rm -fr {} \; をしてみたのですが、10日更新されなかった場合は全てのファイルが消えてしまいます。最新のファイルだけは残せる方法をご存知でしたら 教えてください。 よろしくお願いします。

  • シェル:複数ファイルの計算方法に困ってます

    ファイル毎に使用容量を管理するシェル作成中、下記の内容で困ってます。いいアイデアを教えていただけないでしょうか。 よろしくお願いします。 【 前日分 】old.txt                カウント 使用量 ファイル名                5 10 aaaaaa.txt         5 15 bbbbbb.txt 3 20 dddddd.txt  【 当日分 】 new.txt  カウント 使用量 ファイル名 1 50 aaaaaa.txt 1 65 bbbbbb.txt 1 15 cccccc.txt 【理想】new.tmp カウント 使用量 ファイル名 6 60 aaaaaa.txt 6 80 bbbbbb.txt 1 15 cccccc.txt 3 20 dddddd.txt new.txtと同じ名前がold.txtにあれば、カウント列・使用量列をそれぞれ加算しnew.tmpに出力。 new.txtにあってold.txtに無い場合はそのまま行をnew.tmpに出力 new.txtになくてold.txtにある場合もそのまま行をnew.tmpに出力 説明 カウント・・・毎日加算処理をしカウントを上げていく        (よってnew.txtのカウントは必ず "1") 使用量・・・ファイルの使用量 ファイル名・・・ファイル名 上記のようなことは出来るでしょうか? diff・grep・sedとか調べてみたんですが融合技が見当つかず・・・ よろしくお願いします。

  • コマンドプロンプトで5日以上前に更新されたファイルを検索したいです。

    コマンドプロンプトで5日以上前に更新されたファイルを検索したいです。 unixでいうfindコマンド(-mtimeオプション)のようなコマンドはありますでしょうか? エクスプローラーで検索時更新日時を指定できますので、コマンドプロンプトでもできるのでは?と思ったのですが、自分では見つけられず…。 宜しくお願いします。