W ciągu kilku lat w moim $HOME
katalogu pojawiło się wiele ukrytych plików i katalogów.
Chciałbym ciągle usuwać niepotrzebne.
Jak mogę dowiedzieć się, które aplikacje utworzyły te ukryte pliki i katalogi.
Jak mogę się upewnić, że usunięcie ukrytych plików i katalogów jest bezpieczne i że nic ważnego nie zostanie utracone i nic zależnego od nich nie przestanie działać?
Odpowiedzi:
Możesz je tymczasowo usunąć.
W ten sposób znajdziesz wszystkie pliki w twoim
$HOME
katalogu - bez rekurencji w katalogach potomnych - do których nie masz dostępu od roku. Zaktualizuje teraz czas dostępu do nich wszystkich, a następnie przeniesie je wszystkie do katalogu o nazwie.trash
. Jeśli napotkasz jakiekolwiek problemy między momentem uruchomienia a czasem, w którym zdecydujesz się rozpocząć usuwanie starych plików~/.trash
, możesz spróbować przenieść niektóre z nich z powrotem i sprawdzić, czy przyczyną jest któryś z nich umieszczony w koszu.źródło
relatime
. fromman mount
:relatime
Zaktualizuj czasy dostępu do i-węzłów w celu modyfikacji lub zmiany czasu. Czas dostępu jest aktualizowany tylko wtedy, gdy poprzedni czas dostępu był wcześniejszy niż bieżący czas modyfikacji lub zmiany. (Podobne donoatime
, ale nie psuje sięmutt
ani inne aplikacje, które muszą wiedzieć, czy plik został odczytany od ostatniej modyfikacji). W każdym razie użyj-m
i-mtime
działaj z modtime. lub cokolwiek chcesz.Jeśli jesteś rootem systemu, możesz użyć funkcji jądra audytu, aby uzyskać maksymalną informację o tym, kto / kiedy / co uzyskał / utworzył / zmodyfikował pliki. zobacz ten samouczek dla przykładów o smaku Debiana
Jeśli nie masz dostępu do konta root, możesz użyć crontab lub skryptu z nieskończoną pętlą + uśpienie, aby uruchomić pliki lsof i grep w swoim katalogu głównym. Zobacz stronę lsof . Jednak wyświetli tylko te aplikacje, które mają otwarty skrypt plików w momencie uruchomienia lsof. Jeśli aplikacja otworzy plik, edytuj go, a następnie zamknij, nie zobaczysz tej zmiany w lsof.
taki linijka taka powinna wykonać zadanie:
lsof -u $(id -u) 2>/dev/null |grep -P $HOME'/[^\s]*$'
Innym sposobem jest użycie interfejsu API jądra inotify w celu sprawdzenia dostępu do pliku. Niestety, jest to system asynchroniczny i nie będziesz mieć takich szczegółów, jak „jaka aplikacja”, „dokładnie kiedy”, „jaki użytkownik”. Będziesz mieć tylko oddzwonienie dotyczące „ten plik został zmodyfikowany / uzyskano dostęp ...”. Niektóre aplikacje (Inotify, FAM, gamin) zapewniają prosty dostęp do interfejsu API
źródło
inotify
do uruchomienialsof
. System jest po prostu zbyt szybki, aby ten pomysł zadziałał: proces często kończy się lub zamyka plik przed uruchomieniem lsof. W niektórych przypadkach może to nadal działać, ale prawdopodobnie bardzo niewiele.Możesz wyszukiwać
atime
i usuwać pliki, które nie były używane przez długi czas (pod warunkiem, że nie skonfigurowałeś systemu, aby nie korzystał z atime), ale jest to dość ryzykowne (sprawdź,tmpreaper
czy chcesz iść w ten sposób).Zamiast tego sugerowałbym Bleachbit , interaktywny program GUI do usuwania cruft.
źródło