- ベストアンサー
特定の更新日付のファイルのみを移動するにはどうしたらよいのでしょう
Linuxのコマンドについてご教授ください。 1.ファイルの移動ですが特定の更新日付のファイルのみを移動するにはどうしたらよいのでしょうか? 2.ファイルを完全に消すにはrm コマンドでファイルは完全に削除されるのでしょうか?(ディスクが満杯に近い時にファイルを削除したいので、完全に削除した いのですが) ご存知でしたらよろしくお願いします。
- みんなの回答 (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した時点で削除される
その他の回答 (2)
- pipipi523
- ベストアンサー率40% (148/365)
移動はmvですね。移動ならこんな感じでは? find /var/log -mtime +24 -print | xargs mv --target-directory=/home/hogehoge
お礼
ありがとうございます。 大変参考になりました。
- agharta
- ベストアンサー率52% (54/103)
こんな感じでしょうか。 $ find directory -type f [-atime +nnn] [-mtime +nnn] -print | xargs rm -f -atime +nnn :指定した日数の間アクセスのないファイルを見つける。 -mtime +nnn :指定した日数の間変更のないファイルを見つける。 ファイルシステムによって変わりますが、大抵の場合rmコマンドは 削除フラグをつけているだけだと思います。 ただ、問題になることは無いと思います。
お礼
早速のご解答本当にありがとうございました。 助かります。 確認してみます。
お礼
大変わかりやすい説明ありがとうございました。 早速使わせていただきます。 またわからないことがありましたらご教授よろしくお願いします。