Selama beberapa tahun, di $HOME
direktori saya banyak file dan direktori tersembunyi muncul.
Saya ingin terus menghapus yang tidak dibutuhkan.
Bagaimana saya bisa mengetahui aplikasi mana yang membuat file dan direktori tersembunyi itu.
Bagaimana saya bisa yakin bahwa itu aman untuk menghapus file dan direktori tersembunyi dan tidak ada yang penting akan hilang dan tidak ada yang bergantung pada mereka tidak akan berhenti bekerja?
Jawaban:
Anda bisa memindahkan mereka untuk sementara waktu.
Itu akan menemukan semua file di
$HOME
direktori Anda - tanpa berulang ke direktori anak - yang belum diakses selama setahun. Ini akan memperbarui waktu akses untuk mereka semua sekarang, dan kemudian memindahkan semuanya ke direktori bernama.trash
. Jika Anda mengalami masalah antara waktu Anda menjalankannya dan kapan pun Anda memutuskan untuk mulai menghapus file lama,~/.trash
Anda dapat mencoba memindahkan beberapa dari mereka kembali dan melihat apakah ada yang Anda masukkan ke tempat sampah.sumber
relatime
. fromman mount
::relatime
Perbarui waktu akses inode relatif untuk mengubah atau mengubah waktu. Waktu akses hanya diperbarui jika waktu akses sebelumnya lebih awal dari waktu modifikasi atau perubahan saat ini. (Mirip dengannoatime
, tetapi tidak rusakmutt
atau aplikasi lain yang perlu tahu apakah file telah dibaca sejak terakhir kali dimodifikasi.) Dan lagi pula, gunakan-m
dan-mtime
untuk bekerja dengan modtime. atau apapun yang kamu suka.Jika Anda adalah root dari sistem Anda, Anda dapat menggunakan audit fitur kernel untuk memiliki informasi maksimum tentang siapa / kapan / apa yang diakses / dibuat / diubah file. lihat tutorial ini untuk contoh rasa debian
Jika tidak memiliki akses root, Anda bisa menggunakan crontab atau skrip dengan loop infinite + sleep untuk menjalankan lsof & grep file di homedir Anda.Lihat halaman dari lsof . Namun, itu hanya akan menampilkan aplikasi Anda yang memiliki deskriptor dibuka pada saat Anda meluncurkan lsof. Jika aplikasi membuka file, edit, lalu tutup, Anda tidak akan melihat perubahan ini di lsof.
one-liner seperti ini harus melakukan pekerjaan:
lsof -u $(id -u) 2>/dev/null |grep -P $HOME'/[^\s]*$'
Cara lain adalah dengan menggunakan API kernel inotify untuk memeriksa kapan file diakses. Sayangnya, ini adalah sistem async, dan Anda tidak akan memiliki detail seperti "aplikasi apa", "kapan tepatnya", "pengguna apa". Anda hanya akan mendapat panggilan balik tentang "file ini diubah / diakses ...". Beberapa aplikasi (Inotify, FAM, gamin) memberi Anda akses mudah ke api
sumber
inotify
untuk memiculsof
. Sistem ini terlalu cepat untuk ide ini untuk berfungsi: prosesnya sering hilang atau telah menutup file sebelum lsof dapat dijalankan. Dalam beberapa kasus, ini mungkin masih berfungsi, tetapi mungkin sangat sedikit.Anda dapat mencari
atime
dan menghapus file yang tidak digunakan dalam waktu lama (asalkan Anda tidak mengkonfigurasi sistem Anda untuk tidak menggunakan atime), tetapi itu agak berisiko (lihattmpreaper
apakah Anda ingin pergi dengan cara ini).Alih-alih, saya menyarankan Bleachbit , program GUI interaktif untuk menghapus cruft.
sumber