SİGORTA ve erişim hakları
lsofvarsayılan olarak , Linux'ta özel erişim haklarına sahip, kullanıcı alanında uygulanan FUSE - dosya sistemleri dahil tüm dosya sistemlerini kontrol eder .
Bu yanıtta Ubuntu'ya sorduğunuzda görebileceğiniz gibi monte edilmiş bir GVFS dosya sistemine (özel FUSE durumu) normalde yalnızca onu bağlayan kullanıcıya (sahibine gvfsd-fuse) erişilebilir . Hatta rooterişemiyor bile. Bu kısıtlamayı geçersiz kılmak için seçeneği monte kullanmak mümkündür allow_rootve allow_other. Bu seçenek, örneğin bu cevapta açıklanan SİGORTA daemon'unda da etkinleştirilmelidir ... ancak sizin durumunuzda erişim haklarını değiştirmeniz gerekmez (ve edilmemelidir).
Lsof'dan dosya sistemleri hariç
Sizin durumunuzda lsof, GVFS dosya sistemlerini kontrol etmeniz gerekmez; böylece, stat()bu -eseçeneği kullanarak aralarında yapılan aramaları hariç tutabilirsiniz (veya sadece uyarmayı yok sayabilirsiniz):
lsof -e /run/user/1000/gvfs
Bazı dosyaları lsof ile kontrol etme
lsofSisteminizde çalışan tüm işlemler hakkında bilgi almak için kullanıyorsunuz ve yalnızca o zaman tüm çıktıyı kullanarak filtreliyorsunuz grep. Yalnızca belirli dosyaları kontrol etmek istiyorsanız ve ilgili işlemler -fseçeneği, doğrudan izleyen bir değer olmadan seçeneği kullanın ve ardından "seçeneklerin sonu" ayırıcısından sonra dosyaların listesini belirtin --. Bu oldukça hızlı olacaktır.
lsof -e /run/user/1000/gvfs -f -- /tmp/report.csv
Genel çözüm
Üzerinde stat()başarısız olan tüm bağlı dosya sistemlerini dışlamak için, bunun gibi bir şeyi çalıştırabilirsiniz (in bash):
x=(); for a in $(mount | cut -d' ' -f3); do test -e "$a" || x+=("-e$a"); done
lsof "${x[@]}" -f -- /tmp/report.csv
Veya kullandığınızdan emin olmak için stat()( test -efarklı bir şekilde uygulanabilir):
x=(); for a in $(mount | cut -d' ' -f3); do stat --printf= "$a" 2>/dev/null || x+=("-e$a"); done
lsof(|ve grep olmadan )?