Mac OS X'te hangi işlemin dosya kullandığını görün


93

Bir dosyayı izleyebilmek ve hangi işlemin o dosyaya dokunduğunu görmek istiyorum. Mümkün mü? Aktivite monitöründe açık süreçlerin listesini görebildiğimi biliyorum ama sanırım bunu görmem benim için çok hızlı oluyor. Bunun nedeni bir çerçeve kullanıyorum ve sanırım çerçevenin sistem sürümü hata ayıklama sürümü yerine kullanılıyor ve hangi sürecin ona değdiğini görmek istiyorum.


1


1
NOT: ^^ ^ ÇOK İLGİLİ, benzer bir soru - FYI ;-)
Brad Parks

Yanıtlar:


90

lsof açık dosyaları listeler, ancak anlık dokunuşlar için biraz garip olabilir (örneğin, lsof çalıştığında dosya açık değilse, gösterilmez).

Ben en iyi bahis fernLightning en olacağını düşünüyorum fseventer.app . Bu "nagware" dir ve fsevents API'sini gerçek zamanlı olarak (grafiksel olarak) izlemenizi sağlar.


39
lsof | grep myfilenamebenim için çalıştı. Çöp Kutumda sistemin kullanımda olduğunu iddia ettiği bir PDF dosyası var. Garip bir şekilde lsofkullanımda olduğunu iddia ediyor Previewancak Previewçalışıyor gibi görünmüyor (örneğin, çalışan uygulamalar arasında komut sekmesi kullandığımda) ancak Activity Monitorçalıştığını gösteriyor. Aptal Önizleme.
Dave Sag

Bu, geçici dosyalar için mükemmeldir (yani, açık tutulmayan ve yalnızca kaydederken dokunulan dosyalar).
Jeronimo Colon III

Bugün Çöp Kutumdaki bir dosyanın zombi Önizleme işlemi tarafından tutulmasıyla benzer bir sorun yaşadım. Önizleme'yi açıp tekrar çıkmak sorunu benim için çözdü. Önizleme'nin çıkmasına rağmen dosyaları düzenli olarak tuttuğunu düşünüyorum. Kırpmak için genellikle Evernote'taki görüntüleri Önizleme'de açıyorum ve çoğu zaman - çoğu zaman - Önizleme'den çıktıktan sonra bile Evernote, görüntünün başka bir uygulamada hala açık olduğunu gösteriyor.
Vihung

Bu, şu anda yaşadığım bir soruna benziyor - hala çözüm yok. Chrome kullanarak bir dosya indirdim, ardından Finder'ı kullanarak başka bir klasöre taşıdım. Gri görünüyordu, bu yüzden dosyayı kimin açtığını bulmak için lsof'u kullandım: Finder. Finder'dan çıkmaya zorladım (otomatik olarak yeniden başlatır). Bu işe yaramadı. Dizüstü bilgisayarımı kapatmayı denedim, bunun her şeyi uyutacağını düşündüm ve umarım sorunu çözdüm. Bu da işe yaramadı. lsof, Finder'ı suçlu olarak göstermeye devam ediyor ve kullanıcı arayüzünde gri görünmeye devam ediyor.
Victor Engel

1
İlginç bir şekilde, bulucu pencerelerini kapatmak sorunu çözdü. Ancak, yeni bir bulucu penceresi açıp aynı klasöre gidersem sorun devam etti. Hatalı dosyayı çöp kutusuna sürükleyerek (dosyanın açık olduğu programda istenmeyen etkiler olabileceğine dair bir uyarı üreterek) ve ardından dosyayı yeniden kopyalayarak sorunu çözdüm.
Victor Engel

95

Bu basit: sudo fs_usage | grep [path_to_file]


10
Bu, buradaki en iyi cevaptır.
NuSkooler

1
fs_usage root olarak çalıştırılmalıdır ... bu en iyi çözüm değildir.
bontoJR

Bu fs olaylarını gösteriyor mu? Bir sürecin açık bir dosyası varsa ancak onunla hiçbir şey yapmıyorsa, burada hiçbir şey görünmez. Ya da en azından benim deneyimim gibi görünüyordu. sudo fs_usage | grep musiclibraryhiçbir şey göstermedi ama sudo lsof | grep musiclibrarymusiclibrary veritabanı dosyalarıma erişen 3 işlem gösterdi.
gman

43

Ama Google'da 2 dakika geçirdim ve cevabınızı burada buldum .

$ lsof | grep [her neyse]

[Her neyse], aradığınız dosya adıyla değiştirilir. Bununla, hangi programın çöpe atılmak üzere olan dosyanızı umutsuzca tuttuğunu görebilirsiniz. Bu programdan çıktığınızda, çöp kutunuz boşalacaktır.


1
Bununla ilgili sorun, lsof'u gerçekten hızlı bir şekilde denemek ve yazmak zorunda olmam. sadece geçici olabilir
JPC

13
lsof -r
lsof'u

Dosyanın serbest bırakılma ihtimaline karşı grep etmek mantıklı.
Ray Hunter

16

Daha hızlı yol:

$ lsof [path_to_file]

Bu çözüm, root şifresini gerektirmez ve size şu net sonucu verir:

COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF     NODE NAME
Finder     497  JR7   21r   REG    1,2   246223 33241712 image.jpg
QuickLook 1007  JR7  txt    REG    1,2   246223 33241712 image.jpg

15

Diğer bir seçenek ise Sloth . Başkalarının da bahsettiği LSOF için ücretsiz, açık kaynaklı bir GUI.


1
Vay canına, bu gerçekten harika bir araç, paylaştığınız için teşekkürler! İzini kaybettiğim bir süreci bulmak için mükemmel çalıştı.
RayB

2
Daha taşınabilir oldukları için komut satırı çözümlerini tercih etme eğilimindeyim, ancak bunun çok güzel bir araç olduğunu kabul etmeliyim! Önerin için teşekkürler.
Form
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.