• ベストアンサー

特定の更新日付のファイルのみを移動するにはどうしたらよいのでしょう

Linuxのコマンドについてご教授ください。 1.ファイルの移動ですが特定の更新日付のファイルのみを移動するにはどうしたらよいのでしょうか? 2.ファイルを完全に消すにはrm コマンドでファイルは完全に削除されるのでしょうか?(ディスクが満杯に近い時にファイルを削除したいので、完全に削除した いのですが) ご存知でしたらよろしくお願いします。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.3

特定の更新日付を指定しての移動は簡単ではありません。まず相対日を求めます。 date -d "10 days ago" などと数字を変えながら目的の日付が表示されるn日前を求めます。例えば、15日前とします。 find . -daystart -mtime 15 -print | xargs mv --target-directory=/home/hogehoge 15だとちょうど15日前、+15だと15日以上、-15だと15日以下の意味になります。また、標準だと、find コマンドを実行した時刻が基点となる(注)ので0時を基点とするために-daystartも指定します。 注: find . -mtime 1 を、7/12 23:30 に実行すると、7/10 23:30~7/11 23:30のファイルが対象になる。 rm では完全に削除されます。例外は、 ・そのファイルが使用中→使用が終わった時点で削除される ・ln コマンドで別名を持っている場合→別名もrmした時点で削除される

del_pielo
質問者

お礼

大変わかりやすい説明ありがとうございました。 早速使わせていただきます。 またわからないことがありましたらご教授よろしくお願いします。

その他の回答 (2)

  • pipipi523
  • ベストアンサー率40% (148/365)
回答No.2

移動はmvですね。移動ならこんな感じでは? find /var/log -mtime +24 -print | xargs mv --target-directory=/home/hogehoge

del_pielo
質問者

お礼

ありがとうございます。 大変参考になりました。

  • agharta
  • ベストアンサー率52% (54/103)
回答No.1

こんな感じでしょうか。 $ find directory -type f [-atime +nnn] [-mtime +nnn] -print | xargs rm -f -atime +nnn :指定した日数の間アクセスのないファイルを見つける。 -mtime +nnn :指定した日数の間変更のないファイルを見つける。 ファイルシステムによって変わりますが、大抵の場合rmコマンドは 削除フラグをつけているだけだと思います。 ただ、問題になることは無いと思います。

del_pielo
質問者

お礼

早速のご解答本当にありがとうございました。 助かります。 確認してみます。

関連するQ&A