Как узнать, какие программы используют тот или иной файл?

Я нашел файл с именем kernel-4.2.5 в своем домашнем каталоге и хочу удалить его, но я не знаю, какой вред это может причинить. Есть ли способ узнать, используется ли этот файл, потому что у меня версия ядра 4.4.0-31-generic.

Кроме того, как мне узнать все установленные в моей системе программы, которые я больше не использую?

1 ответ

Решение

Вы можете узнать, какие программные пакеты содержат определенный файл (или каталог), используя команду

dpkg -S /PATH/TO/FILE_OR_DIRECTORY

Это работает только для установленных пакетов и только для файлов / каталогов, которые содержатся в пакете. Он не распознает файлы / каталоги, созданные сценариями установки или более поздними версиями запущенного приложения.


Чтобы узнать, открыт ли файл в настоящее время какими-либо приложениями, вы можете использовать команду

lsof /PATH/TO/FILE_OR_DIRECTORY

Отсутствие вывода означает, что файл в настоящее время ничем не открыт. В противном случае вы получите одну строку для приложения, которое в данный момент использует файл.


Если обе команды не имеют выходных данных и поэтому предполагают, что файл не нужен, возможно, вы можете безопасно удалить его. Конечно, я не могу гарантировать, что это не нужно для чего-то, что вы могли бы хотеть больше, но я думаю, что ваши шансы довольно хороши.

В любом случае, он не может быть системно значимым файлом, так как он находится в вашем домашнем каталоге, но не знаю, как он туда попал.

Самое безопасное - переместить его в любое место в качестве резервной копии еще на несколько месяцев, пока вы не станете на 100% уверены, что вам это не нужно.

Другие вопросы по тегам