Hai Saya punya banyak file yang telah dihapus tetapi karena beberapa alasan ruang disk yang terkait dengan file yang dihapus tidak dapat digunakan sampai saya secara eksplisit membunuh proses untuk file mengambil ruang disk
$ lsof /tmp/
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
cron 1623 root 5u REG 0,21 0 395919638 /tmp/tmpfPagTZ4 (deleted)
Ruang disk yang diambil oleh file yang dihapus di atas menyebabkan masalah seperti ketika mencoba menggunakan kunci tab untuk melengkapi jalur file secara otomatis saya mendapatkan kesalahan bash: cannot create temp file for here-document: No space left on device
Tetapi setelah saya menjalankan kill -9 1623
ruang untuk PID itu dibebaskan dan saya tidak lagi mendapatkan kesalahan.
Pertanyaan saya adalah:
- mengapa ruang ini tidak segera dibebaskan ketika file pertama kali dihapus?
- apa cara terbaik untuk mendapatkan kembali ruang file yang terkait dengan file yang dihapus?
dan tolong beri tahu saya terminologi yang salah yang saya gunakan atau informasi terkait dan relevan lainnya mengenai situasi ini.
sumber
Seperti yang orang lain katakan
lsof
dapat digunakan untuk membuat daftar semua file yang dihapus yang masih pada disk karena deskriptor file terbuka. Namun, ini mungkin daftar yang sangat panjang. Berikut adalah perintah yang mencantumkan file-file ini diurutkan berdasarkan ukuran naik dalam byte:Mungkin ada cara yang lebih ringkas untuk melakukan ini tetapi perintah di atas bekerja untuk saya.
sumber
Ruang tidak segera dibebaskan karena proses yang berjalan masih memiliki pegangan file terbuka ke file yang baru saja dihapus. Lagi pula, jika suatu proses masih mencoba menggunakan file, Anda mungkin tidak benar-benar ingin kernel menyingkirkannya (file). Itu mungkin membuat prosesnya sedikit kesal. Cara terbaik (dan hanya, sejauh yang saya tahu) untuk membebaskan ruang adalah melakukan apa yang Anda lakukan - bunuh prosesnya.
sumber
(Mint 17.1)
TL; DR:
sudo baobab
(Penganalisis Penggunaan Disk).root
sampah pengguna.Konteks
Saya terjebak dengan ruang yang semakin berkurang sementara saya terus-menerus menghapus file. Saya menginstal
trash-cli
paket untuk mengosongkan sampah, tetapi ini tidak membantu. Akhirnya, saya perhatikan bahwa ketika saya menjalankanbaobab
(Disk Usage Analyzer di GUI, setidaknya pada Mint 17.1) untuk memeriksa struktur ruang disk, itu memberi peringatan bahwa beberapa folder tidak dapat diakses. Jadi saya menjalankannya sebagairoot
menggunakansudo baobab
. Ini mengungkapkan masalahnya. Banyak file yang telah dihapus berada di trashbinroot
pengguna, bukan pengguna saya sendiri. Jadi, saya tidak bisa membebaskan ruang. Lalu saya cukup mengosongkan sampah menggunakan sebagai root (sudo trash-cli
) dan semua ruang saya kembali.sumber
Coba gunakan perintah di bawah ini
dan kemudian bunuh pid dari file yang dihapus.
sumber