.class
ワークスペースでしばらく実行されていないファイルを検出して削除する方法は?
答え1
変更時間の代わりに、変更時間に基づいてファイルが最後に実行された最も近い時間を見つけることができます。atime
実行時にファイルは変更されません。ただし、他の理由でファイルにアクセスしたかどうかを知る方法はありません。ただし、一定時間内にそのファイルにアクセスしないと、そのファイルを実行できません。
24時間以上アクセスされなかった実行可能ファイルを一覧表示するには、次のようにします。
find workspace_dir -type f -perms /111 -atime +1
削除するには(まず、削除したい項目のみを削除してください。):
find workspace_dir -type f -perms /111 -atime +1 -exec rm {} +
SSDの場合、noatime
ディスクの書き込み回数を減らし、寿命を延ばすためにマウントを選択することがよくあります。このオプションを使用してファイルシステムをマウントしてもnoatime
機能しません。
修正する
これがJavaファイルの場合、.class
直接実行することはできません。.class
24時間前にアクセスしたファイルを検索/削除するには:
find workspace_dir -type f -name '*.class' -atime +1
find workspace_dir -type f -name '*.class' -atime +1 -exec rm {} +
答え2
プログラムが実行されると、アルテムctimeやmtimeではなく修正されました。
注:stat <filename>
私の言葉を信じられない場合は使用してください。
定義された2つの日付の間にどのファイルにアクセスしたかを確認するには、次のようにします。- 最新オプションを探す
例:
find ./ -name "*.class" -newerat "2014-03-01" ! -newerat "2014-04-02
」
.classで終わり、2014年3月1日から2014年4月2日の間にアクセスしたすべてのファイルが表示されます。
答え3
次のコマンドを使用して、最近変更されたファイルを確認できます。
ls -halt *.class
上記の順序で、出力の最初のファイルは、最後に編集されたことを意味します。
逆順で出力したい場合は、
ls -haltr *.class
上記の出力では、出力の最初のファイルは非常に早く編集されたことを意味します。
一度決めたら期間を決定、rm
これらのファイルに対して操作を実行できます。
これで、決定期間が1日であると仮定すると、次のコマンドを実行できます。
find /path/to/files* -atime +1 -exec rm {} \;
ファイルを削除する別の方法は次のとおりです。
rm -f `find *.class -type f -atime +1`
ファイルのフルパスを指定するのが最善です。
確実にコマンドを実行する前に、次のコマンドを実行して過去1日間に変更されていないファイルを見つけます。
echo `find *.class -type f -atime +1`