देखें कि मैक ओएस एक्स में फाइल किस प्रक्रिया का उपयोग कर रही है


93

मैं एक फ़ाइल को ट्रैक करने में सक्षम होना चाहता हूं और देखना चाहता हूं कि कौन सी प्रक्रिया उस फाइल को छू रही है। क्या यह संभव है? मुझे पता है कि मैं गतिविधि मॉनीटर में खुली प्रक्रियाओं की सूची देख सकता हूं लेकिन मुझे लगता है कि इसे देखना मेरे लिए जल्दी से हो रहा है। इसका कारण यह है कि मैं एक फ्रेमवर्क का उपयोग कर रहा हूं और मुझे लगता है कि फ्रेमवर्क के सिस्टम संस्करण का उपयोग डिबग संस्करण के बजाय किया जा रहा है और मैं देखना चाहता हूं कि कौन सी प्रक्रिया इसे छू रही है।




नोट: ^ ^ ^ ^ एक बहुत ही सस्ता है, इसी तरह के सवाल - FYI ;-)
ब्रैड पार्क्स

जवाबों:


90

lsof खुली फ़ाइलों को सूचीबद्ध करेगा, लेकिन यह क्षणिक स्पर्श के लिए थोड़ा अजीब हो सकता है (उदाहरण के लिए, यदि फ़ाइल lsof के चलने पर फ़ाइल नहीं खुलती है, तो यह प्रदर्शित नहीं होती है)।

मुझे लगता है कि आपकी सबसे अच्छी शर्त fernLightning की fseventer.app होगी । यह "nagware" है, और आपको वास्तविक समय में fsevents API को देखने की अनुमति देता है।


39
lsof | grep myfilenameमेरे लिए काम किया। मुझे अपने ट्रैश में एक पीडीएफ फाइल मिली है जो सिस्टम का दावा है कि उपयोग में है। अजीब तरह से lsofयह दावा करता है कि यह इसके उपयोग में है, Previewलेकिन Previewऐसा लगता नहीं है (जैसे कि जब मैं रनिंग ऐप्स के माध्यम से कमांड-टैब करता हूं) लेकिन Activity Monitorइसे चलाने के लिए दिखाता है। बेवकूफ पूर्वावलोकन।
डेव सग

यह क्षणिक फ़ाइलों के लिए एकदम सही है (यानी, ऐसी फाइलें जिन्हें खुले नहीं रखा गया है और केवल सहेजते समय स्पर्श किया गया है)।
जेरोनिमो कोलन III

मुझे आज भी इसी तरह की समस्या थी, मेरे ट्रैश में एक फाइल के साथ एक ज़ोंबी प्रीव्यू प्रक्रिया आयोजित की गई थी। पूर्वावलोकन खोलना और इसे फिर से छोड़ना मेरे लिए समस्या को हल करता है। मुझे लगता है कि पूर्वावलोकन नियमित रूप से फाइलों को पकड़ कर रखता है, हालांकि यह छोड़ दिया है। मैं अक्सर उन्हें क्रॉप करने के लिए पूर्वावलोकन में एवरनोट के रूप में छवियां खोलता हूं, और सबसे अधिक बार - अधिक बार नहीं - यहां तक ​​कि मैंने पूर्वावलोकन छोड़ने के बाद भी, एवरनोट ने कहा कि छवि किसी अन्य एप्लिकेशन में अभी भी खुली है।
विहंग

यह एक समस्या के समान प्रतीत होता है जो मुझे अभी हो रहा है - फिर भी कोई समाधान नहीं है। मैंने क्रोम का उपयोग करके एक फ़ाइल डाउनलोड की, फिर इसे फाइंडर का उपयोग करके किसी अन्य फ़ोल्डर में स्थानांतरित कर दिया। यह ग्रे दिखाई दिया, इसलिए मैंने यह पता लगाने के लिए lsof का उपयोग किया कि फाइल किसके पास है: फाइंडर। मैंने खोजक छोड़ने की कोशिश की (जो स्वचालित रूप से इसे पुनः लोड करता है)। यह काम नहीं किया। मैंने अपना लैपटॉप बंद करने की कोशिश की, जिसमें लगा कि सब कुछ सो जाएगा और समस्या को साफ कर देगा। यह भी काम नहीं किया। lsof फाइंडर को अपराधी के रूप में दिखाना जारी रखता है, और यह UI में ग्रे दिखाता रहता है।
विक्टर एंगेल

1
दिलचस्प है, खोजक खिड़कियां बंद करना समस्या को हल करने के लिए लग रहा था। हालाँकि, अगर मैंने एक नई खोजक विंडो खोली और उसी फ़ोल्डर में नेविगेट की, तो समस्या बनी रही। मैंने त्रुटिपूर्ण फ़ाइल को ट्रैश में खींचकर समस्या का समाधान किया (एक चेतावनी पैदा करते हुए कि प्रोग्राम में कोई अप्रिय प्रभाव हो सकता है जिसमें फ़ाइल खुली है), फिर फ़ाइल को फिर से खोलना।
विक्टर एंगेल

94

यह आसान है: sudo fs_usage | grep [path_to_file]


10
यह अब तक का सबसे अच्छा उत्तर है।
नुस्कूलर

fs_usage को रूट के रूप में चलाया जाना चाहिए ... यह सबसे अच्छा समाधान नहीं है।
बोंटूजैआर

यह fs इवेंट दिखाता है? यदि किसी प्रक्रिया में एक फ़ाइल खुली है, लेकिन इसके साथ कुछ नहीं कर रहा है तो यहाँ कुछ भी नहीं दिखता है। या कम से कम मेरा अनुभव तो लग रहा था। sudo fs_usage | grep musiclibraryकुछ भी नहीं sudo lsof | grep musiclibraryदिखाया लेकिन मेरे संगीत डेटाबेस डेटाबेस फ़ाइलों तक पहुँचने के लिए 3 प्रक्रियाओं को दिखाया।
10

43

लेकिन मैंने Googling में 2 मिनट बिताए और यहां आपका जवाब मिला ।

$ lsof | grep [जो भी हो]

जहाँ [जो भी] उस फ़ाइलनाम से बदला जाता है जिसे आप खोज रहे हैं। इसके साथ, आप देख सकते हैं कि कौन-सा प्रोग्राम आपकी लगभग-टू-ट्रैश फ़ाइल पर सख्त है। एक बार जब आप उस प्रोग्राम से बाहर निकल जाते हैं, तो आपका कचरा खाली हो जाएगा।


1
इसके साथ समस्या यह है कि मुझे कोशिश करनी है और वास्तव में तेजी से lsof टाइप करना है। यह केवल क्षणिक हो सकता है
जेपीसी

13
lsof -r रिपीट मोड में lsof डालता है
stoutyhk

फ़ाइल रिलीज़ होने की स्थिति में इसे ठीक करने के लिए समझ में आता है।
रे हंटर

16

तेज़ तरीका है:

$ lsof [path_to_file]

इस समाधान के लिए रूट पासवर्ड की आवश्यकता नहीं होती है और आपको निम्नलिखित, स्पष्ट, परिणाम प्राप्त होते हैं:

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

एक अन्य विकल्प सुस्ती है । यह LSOF के लिए एक स्वतंत्र, खुला स्रोत जीयूआई है जिसका दूसरों ने उल्लेख किया है।


1
वाह यह साझा करने के लिए एक बहुत अच्छा उपकरण धन्यवाद है! यह एक ऐसी प्रक्रिया को खोजने के लिए एकदम सही काम करता है जिसका मैंने ट्रैक किया था।
RayB

2
मैं कमांड-लाइन समाधान पसंद करते हैं क्योंकि वे अधिक पोर्टेबल हैं, लेकिन मुझे यह स्वीकार करना चाहिए कि यह एक बहुत अच्छा उपकरण है! सलाह के लिये धन्यवाद।
फॉर्म
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.