長年にわたり多くの隠しファイルとディレクトリが私のディレクトリ$HOME
に登場しました。
不要なものを削除し続けたいです。
どのアプリケーションがこれらの隠しファイルとディレクトリを生成するのか、どうすればわかりますか?
隠しファイルやディレクトリの削除が安全で重要な内容が失われることなく、それに依存するすべてのアイテムの動作が中断されないようにするにはどうすればよいですか?
答え1
一時的に交換できます。
cd ~
mkdir .trash
find . ! -name . -prune ! -type d -atime +365 -exec \
sh -c 'touch -a -- "$@"
mv -- "$@" ~/.trash
' -- {} +
$HOME
これにより、サブディレクトリに再帰的に移動せずにディレクトリから1年間アクセスしていないすべてのファイルを見つけることができます。すべてのエントリのアクセス時間を今すぐ更新し、すべての名前付きディレクトリに移動します.trash
。実行と古いファイルの削除を開始することとの間に問題が発生した場合は、そのファイルの一部を~/.trash
再度移動して、ごみ箱に入れたファイルが問題を引き起こしているかどうかを確認できます。
答え2
システムのルートであれば、次のものを使用できます。審査カーネル機能には、誰が/いつ/何にアクセスしてファイルを作成/変更したかに関する最大の情報があります。Debian スタイルの例については、このチュートリアルをご覧ください。
ルートアクセス権がない場合は、crontabまたは無限ループ+スリープモードを含むスクリプトを使用して実行できます。ラソフ&grepファイルをhomedirに保存します。lsofのマンページを参照してください。。ただし、lsofが起動すると、ファイル記述子が開いているアプリケーションのみが表示されます。アプリケーションがファイルを開いて編集して閉じると、lsofはこの変更を表示できません。
次のような1行で十分です。lsof -u $(id -u) 2>/dev/null |grep -P $HOME'/[^\s]*$'
別の方法はinotify カーネルAPIファイルにアクセスするタイミングを確認してください。残念ながら、これは非同期システムなので、「どのアプリケーション」、「特定の時間」、「どのユーザー」の詳細もありません。 「このファイルは修正/アクセスされました...」のコールバックのみを受け取ります。一部のアプリケーション(イノティファイ、FAM、ガーミン)APIへの簡単なアクセスを提供します。
答え3
私はお勧めします漂白ビット、ジャンク除去のための対話型GUIプログラムです。ディストリビューションリポジトリまたは以下からインストールできます。フラットハブそしてからブリッチビット.org。
マイクセルフが提案するものatime
長い間使用されていないファイルを見つけて削除します(atimeを使用しないようにシステムを設定していない場合)。ただし、これは非常に危険です(tmpreaper
これを行うことを確認してください)。