• ベストアンサー

タイムスタンプでファイルを指定する方法

UNIXコマンドにおいて、ファイル名から日付を判断できないファイルを消す為に、 ファイルのタイムスタンプを指定する方法を教えてください。 やりたいこととしては以下のようになります。 ・4月から7月の間に更新されたファイルを削除したい ・ファイルは同一ディレクトリに1000以上あり、消したいファイルはその内600ほどある

noname#26506
noname#26506

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.1

年月日指定での削除は何らかの言語でプログラムやスクリプトを書かないと出来ません。 コマンド一発でできるのは相対日指定です。 find ディレクトリ -mtime -150 -mtime +30 | xargs /bin/rm で、実行した瞬間より数えて更新日時が30日以上150日以下のファイルを消せます。 他には、 ls -lt ディレクトリ > temp でls結果をファイルに入れて消したいファイルの行だけ残して他の行を削除し、行頭の何文字かを /bin/rm に置換すれば削除するシェルスクリプトが出来ます。

関連するQ&A

  • タイムスタンプを指定してファイルを削除する方法

    WindowsXPを使っています。日付を指定し、それ以前のタイムスタンプを持つファイルを一括削除したいのですが、そのようなMS-DOSコマンドは存在しますか?無い場合は、それに代替する方法があれば、教えてください。

  • FTPでのディレクトリのアップロード方法とタイムスタンプ

    (1)FTPでのディレクトリのアップロード方法 DOS窓から、FTPコマンドで、FTPサーバーにログインし、putやmputでファイルをアップロードする際に、ディレクトリをアップロードする方法をご存知の方がいらっしゃれば教えてください。 サブフォルダ以下すべて、ディレクトリ構成ごとアップロードしたいと考えています。FFFTP等のツールを使わずにコマンドラインからやりたいと思っています。 (2)FTP時のタイムスタンプ WindowsのクライアントPCから、UNIXのサーバーにファイルをアップロードすると、タイムスタンプがファイルをアップロードした時間に置き換わってしまい、もともとのタイムスタンプが書き換えられてしまいます。タイムスタンプをそのままにしてアップロードすることが可能であれば、教えてください。できれば、コマンドラインからがいいですが、不可能ならFFFTP等のツールを使用しようと思っています。 よろしくお願い致します。

  • Windowsのファイル・フォルダのタイムスタンプ

    Windows10ですが、ファイルやフォルダを作成してもすぐに忘れてしまうことがあります。その理由としてあるディレクトリ(フォルダ)\Aのサブのディレクトリ\A\Bを変更したりしても元のフォルダ\Aのタイムスタンプが変更されないということがあるように思います。ディレクトリの深いところで何らかの更新をするとそれが上のディレクトリのタイムスタンプを更新するというような設定はないのでしょうか。 技術的に難しい感じはしないのですが、そうしない理由は何でしょうか。フォルダを作った日にちをいつまでもキープしておきたいということでしょうか。 また、フォルダをコピーするとコピーした日がスタンプされますね。移動はどうなるでしょうか(実験すればすぐですが)。タイムスタンプの考え方とはどのようなことになるでしょうか。また、タイムスタンプの付け方の設定変更はできないでしょうか。

  • ファイル名を元にタイムスタンプを変更したい

    ファイル名を元にタイムスタンプを変更したい はじめまして。 ディレクトリ内にある多数のファイルのタイムスタンプの変更したいと考えています。 ファイル数は3000以上あるため、ファイルひとつひとつ touch コマンドではとても間に合いません。 ディレクトリ内のファイル名には次のような規則があります。 ■ ファイル名の規則 20YYmmdd_HHiiss_カメラモデル名_IMG0001.JPG 20YYmmdd_HHiiss_カメラモデル名_IMG0002.JPG 20YYmmdd_HHiiss_カメラモデル名_MVI0003.MP4 20YYmmdd_HHiiss_カメラモデル名_MVI0004.MP4 つまり、ファイル名の先頭部分が更新日時を意味します。 ■ 更新日時がずれる理由 インターネット経由でファイル入手等により、更新日時が「撮影した日時」ではなく「入手した日時」になってしまいます。 「ファイルの更新日時よりも、ファイル名の先頭部分の時間が正確である。」という前提です。 ■ 一括で更新日時を変更 find, grep, touch コマンドを組み合わせれば、ディレクトリ内のファイルを一括処理できるような気がするのですが。 皆様の知恵をお借りできればと思います。 ■ 環境 ・OS Ubuntu 12.04.2 LTS ・シェル /bin/bash

  • タイムスタンプ変更

    Linuxにおいて指定ディレクトリ以下を再帰的に一度にタイムスタンプを変更するコマンドはありませんでしょうか?touchコマンドでは出来ないような気がするのですが・・・。ご存知な方、ご教授頂けたら幸いです。

  • タイムスタンプの使い方について

    22歳の男性です。 「タイムスタンプ」という言葉の使い方について確認したいことがあります。 タイムスタンプはデータの更新、作成が行われた日とインターネットに記されていました。自分は以下の使い方で合っていると考えているのですがどうでしょうか? A:「このファイルのタイムスタンプ教えて」 B:「2008年2月15日だよ」 他に応用的な使い方がありましたら教えてください。

  • 指定した日付に更新されたファイル

    指定した日付に、更新されたファイルやフォルダを検索するUNIXコマンドを教えてください

  • ファイルのタイムスタンプの取得

    UNIXにて プログラムを組まないで、ファイルのタイムスタンプの 取得方法がありますか?ご存知の方は教えてください。 以上、宜しくお願いします。

  • ファイルアップロード時のタイムスタンプ

    PHPで画像ファイルをアップロードした際、 ファイルのタイムスタンプが更新されてしまいます。 あとで、アップされたファイルのタイムスタンプをみて処理させたいのですが 、タイムスタンプ(作成日時、更新日時)を更新させないでアップロードする方法はありますでしょうか。 アップロードする前のタイムスタンプをあらかじめ取得し、DBなどに登録しておいたほうがいいのかもしれませんが、できれば画像ファイルのタイムスタンプを更新させないでアップロードしたいです。

    • ベストアンサー
    • PHP
  • ファイルやフォルダのタイムスタンプ

    WindowsXPやVistaではファイルやフォルダに 作成日、更新日などのタイムスタンプがあります。 このタイムスタンプはどういう際に付与されるでしょうか? 通常の 新規作成で保存→更新 というのであれば作成日、更新日で理解できます。 ただ、ファイルのコピー、ファイルのダウンロード、圧縮、解凍時も 影響してそうです。 それに時々、作成日が更新日より若いといったことにも出くわします。 もちろん、操作するPCの時間が狂っていたからという理由もなくは ないと思いますが、自分の感覚ではそれ以外の理由が大きく感じています。私が考えている(私の感覚の)、タイムスタンプのつく予想と 大きくかけ離れている気がします。 どなたか詳しい方がいらっしゃいましたら、 "基本的なタイムスタンプの考え方"を教えていただければと思います。 よろしくお願いします。