web-dev-qa-db-ja.com

どのプログラムが特定のファイルを使用しているかを知るにはどうすればよいですか?

ホームディレクトリでkernel-4.2.5というファイルを見つけ、それを削除したいのですが、それがどのような害を及ぼす可能性があるのか​​わかりません。私のカーネルバージョンは4.4.0-31-genericであるため、そのファイルが使用されているかどうかを知る方法はありますか?.

さらに、システムにインストールされている、使用しなくなったプログラムをすべて見つけるにはどうすればよいですか?

2
Mr. T

コマンドを使用して、特定のファイル(またはディレクトリ)が含まれているソフトウェアパッケージを確認できます。

dpkg -S /PATH/TO/FILE_OR_DIRECTORY

これは、インストールされたパッケージと、パッケージに含まれているファイル/ディレクトリに対してのみ機能します。インストールスクリプトまたは後で実行中のアプリケーションによって作成されたファイル/ディレクトリは認識されません。


ファイルが現在開かれているアプリケーションによって開かれているかどうかを確認するには、次のコマンドを使用できます。

lsof /PATH/TO/FILE_OR_DIRECTORY

出力がないということは、ファイルが現在何によっても開かれていないことを意味します。それ以外の場合は、現在ファイルを使用しているアプリケーションごとに1行を取得します。


両方のコマンドに出力がなく、ファイルが不要であることが示唆された場合、おそらく安全に削除できます。もちろん、これ以上必要なものがないことを保証することはできませんが、チャンスはかなりあると思います。

とにかく、ホームディレクトリにあるので、実際にはシステム関連のファイルにすることはできませんが、どのようにしてそこに到達したのかわかりません。

最も安全なのは、バックアップとして、必要がないと本当に100%確信できるまで、さらに数か月ほどどこにでも移動することです。

4
Byte Commander