複数のサブフォルダーとファイルを含むフォルダーがあります。私はサーバーで作業してから60日以上経過したファイルを自動的に削除します。このような削除が発生しないようにファイルのアクセス時間を更新する簡単なコマンドは何ですか(60日以上ファイルを使用せずにすべてのファイルのアクセス時間を設定するのは痛いです)。フォルダをもう一度)?
私は非常に粗雑な方法を考えた。
vim *
vim */* ... and so on
すべてのサブフォルダを開き、:qで閉じます。しかし、これは再び退屈なプロセスです。スクリプトを設定する方法やvim以外のものを使用する方法についてのアイデアはありますか?
答え1
touch
- ファイルアクセスと変更時間の変更
注:touch *
これは可能ですが、サブディレクトリに再帰されず、*
ファイルが存在しない場合は名前付きファイルが作成されます。より強力な解決策は、次のものを使用することです。
find /path/to/root_dir/ -exec touch -a {} \;
また、ディレクトリの変更時間だけを更新したいと思いますか?そのサーバーの削除ポリシーはスペースを節約するためであり、維持したくないため、これはより良い可能性があります。みんなほんの一部を保存するためにブラインドファイルを使用してください。ディレクトリのみをタッチするには、次の操作を行います。
find /path/to/root_dir/ -type d -exec touch -a {} \;
注:touch
別のオプションを設定しないと、接続時間と変更時間の両方が現在時刻に変更され、-a
接続時間のみが更新されます。
また、どのファイルが削除されるかを示すコマンドが必要な場合は、次のコマンドを実行できます。
find /path/to/root_dir/ -atime +55
これにより、/path/to/root_dir/
55日以上アクセスしたすべてのファイルが一覧表示されます。これは、どのファイルがすぐに最大寿命に達するのかを知るのに役立ちます。55
詳細を確認したい場合は、別の番号に変更してください。