Saya mencoba menghapus file di Linux menggunakan rm -rf file_name
, tetapi mendapat kesalahan:
rm: file_name not removed. Text file busy
Bagaimana cara mengetahui proses mana yang menggunakan file ini?
Anda dapat menggunakan fuser
perintah, seperti:
fuser file_name
Anda akan menerima daftar proses yang menggunakan file tersebut.
Anda dapat menggunakan flag yang berbeda dengannya, untuk menerima keluaran yang lebih detail.
Anda dapat menemukan info lebih lanjut di artikel Wikipedia fuser , atau di man
halaman.
fuser
implementasi sama, atau bekerja dengan cara yang sama. Meskipun-i
ditentukan dalam POSIX, implementasi tertentu yang Anda gunakan tidak selalu memiliki opsi yang sama seperti yang dijelaskan di artikel Wikipedia. Misalnya, saya menggunakan AIX sekarang, dan yangfuser
tersedia di sistem ini juga tidak memiliki-i
opsi.fuser
tidaklsof
bekerja untuk saya di tamu kotak virtual. Jawaban ini menyelamatkan saya.Jawaban @ jim benar -
fuser
apa yang Anda inginkan.Selain itu (atau sebagai alternatif), Anda dapat menggunakan
lsof
untuk mendapatkan lebih banyak informasi termasuk nama pengguna, jika Anda memerlukan izin (tanpa harus menjalankan perintah tambahan) untuk menghentikan proses. (Meskipun tentu saja, jika Anda ingin menghentikan proses, Andafuser
dapat melakukannya dengan-k
opsi ini. Anda dapatfuser
menggunakan sinyal lain dengan-s
opsi - periksa halaman manual untuk detailnya.)Misalnya, dengan
tail -F /etc/passwd
menjalankan dalam satu jendela:Perhatikan bahwa Anda juga dapat menggunakan
lsof
untuk mengetahui proses apa yang menggunakan soket tertentu. Alat yang sangat baik untuk dimiliki di gudang senjata Anda.sumber
lsof | head -1
untuk melihat semua header.lsof | grep -E "PID|<your_process_name>"
menampilkan baris pertama dan proses yang ingin Anda kueri.Seperti yang ditunjukkan pada gambar terlampir:
sumber
tree
membaca sesuatu dari stdin? Jika ya, apa hubungannya dengan masukan itu?tree
, bukanlsof
. Sejauh yang saya mengerti,tree
tidak membaca dari input standar, oleh karena itu outputlsof
akan dibuang saat Anda menjalankanlsof | tree ...
. Jika itu benar, makalsof | tree MyFold
sama dengantree MyFold
, yang hanya menampilkan isinya tetapi tidak file mana yang dibuka oleh suatu proses.