Guider/Vilken app som använder en fil

Så hittar du vilken app som använder en fil på en Mac

Atta 🐬

Grundare, Vitals

Publicerad

Kort svar

Om du vill hitta vilken app som har en fil öppen på en Mac skriver du lsof och ett mellanslag i Terminal, drar filen till fönstret och trycker på returtangenten. Den första kolumnen namnger processen. För en mapp listar lsof +D allt som är öppet i den. I Aktivitetskontroll dubbelklickar du på en process och öppnar Öppna filer och portar, vilket hjälper när du redan misstänker en app. Avsluta den appen så är filen fri. Vitals, en aktivitetsövervakare och processinspektör för Mac, söker i alla öppna filer på en gång: skriv en del av namnet i Öppna filer så listas apparna som håller filen.

Så hittar du appen som använder en fil med Terminal

  1. 01 Öppna Terminal, i Program → Verktygsprogram.
  2. 02 Skriv lsof och ett mellanslag, dra filen från Finder till fönstret och tryck på returtangenten.
  3. 03 Läs de två första kolumnerna: processens namn och dess PID. Ingen utdata betyder att inget av ditt har filen öppen.
  4. 04 Kör det igen med sudo först för att ta med processerna som macOS och andra användare kör.
  5. 05 Avsluta appen som namnges. För en process utan fönster kör du kill <PID> med dess PID.

Processen kan vara en hjälpprocess och inte en app: QuickLookUIService hör till Snabbtitt, och ett namn som slutar på Helper hör till appen vars namn står före.

macOS håller en fil upptagen medan ett program har den öppen, och det är därför papperskorgen vägrar ta emot den, ett namnbyte misslyckas eller en skiva inte går att mata ut. Processen är lätt att hitta när du vet var du ska leta. Tabellen nedan kopplar varje meddelande till dess vanliga orsak.

Fil som används: vad du ser, och den troliga orsaken

Det du serTrolig orsakVad du gör
”Åtgärden kan inte slutföras eftersom objektet används” En app har filen öppen, eller så visar Snabbtitt den Stäng dokumentet eller förhandsvisningen och försök sedan igen
Papperskorgen går inte att tömma En fil i papperskorgen är fortfarande öppen i en app Avsluta appen, eller starta om och töm papperskorgen
En fil går inte att byta namn på eller flytta En app skriver till den Vänta tills sparandet eller exporten är klar
En skiva går inte att mata ut En fil eller en mapp på den är öppen Se Macen matar inte ut en skiva
En fil är låst Låst är markerat i Visa info, vilket inte är samma sak som att filen används Avmarkera Låst i Visa info

Hitta den i Aktivitetskontroll

Aktivitetskontroll har ingen sökning bland filer. Om du misstänker en app dubbelklickar du på den, öppnar fliken Öppna filer och portar och letar efter filens sökväg i listan. Listan är lång för en app som har mycket för sig, och den visar en process i taget.

Så läser du utdata från lsof

Varje rad är en öppen fil. COMMAND är processen, PID dess nummer, FD hur filen är öppen och NAME sökvägen. I FD betyder ett nummer följt av r läsning, w skrivning och u båda; cwd är mappen som processen arbetar i, och txt programmet och biblioteken det har läst in.

Allt som en process har öppet

Om du vill gå åt andra hållet, från en process till dess filer, kör du lsof -p <PID> med dess PID. lsof -c Preview listar filerna för varje process vars namn börjar med de bokstäver du anger.

När filen ligger i papperskorgen

Det går inte att tömma papperskorgen medan någon fil i den är öppen. Avsluta appen som hade filen öppen. Om du inte vet vilken listar lsof +D ~/.Trash det som är öppet där; Terminal kan behöva Full skivåtkomst för att se. En omstart av datorn stänger allt, och sedan går papperskorgen att tömma.

När inget har den öppen

Om lsof inte skriver ut något ens med sudo används filen inte. En fil som du ändå inte kan ändra är låst, ägs av en annan användare eller ligger på en skiva som är monterad med skrivskydd. Visa info visar rutan Låst och behörigheterna.

Vad Vitals tillför

Vitals söker i alla öppna filer på datorn efter namn.

  • Öppna filer, på fliken Utvecklare: tryck på ⌘F, skriv en del av en fils namn eller sökväg, så listas varje app som håller en träff
  • Per app, inte per process: en hjälpprocess räknas under appen den hör till
  • Varje apps filer på en skiva, med hur många som är öppna för skrivning
  • Avsluta appen från samma rad, efter en bekräftelse

Bra att veta

  • Utan Full systemmätning saknas filerna för macOS egna processer, och Vitals säger hur många.
  • Vitals visar vem som har en fil öppen. Den låser inte upp en fil och ändrar inte dess behörigheter.
  • Öppna filer finns i fönstret, inte i menyn i menyraden.
Köp Vitals för $29 $29 för alltid under lanseringen, $49 efter den, engångsbetalning, med pengarna tillbaka inom 14 dagar. Eller $15 för ett år med uppdateringar.

Frågor som folk ställer

Hur ser jag vilken process som använder en fil på en Mac?

Kör lsof följt av filens sökväg i Terminal. Den första kolumnen är processen och den andra dess PID.

Varför säger min Mac att objektet används?

En app eller en förhandsvisning har fortfarande filen öppen. Stäng dokumentet, avsluta appen eller stäng förhandsvisningen i Snabbtitt och försök sedan igen.

Hur raderar jag en fil som används på en Mac?

Hitta appen med lsof och avsluta den, och flytta sedan filen till papperskorgen. Om inget listar den startar du om datorn och raderar den då.

Visar Aktivitetskontroll öppna filer?

Ja, en process i taget: dubbelklicka på en process och öppna Öppna filer och portar. Den kan inte söka efter en fil i alla processer.

Behöver lsof sudo?

Utan sudo listar det bara dina egna processer. Med sudo tas även macOS egna med, till exempel Spotlights.

Finns det en app som visar vilken app som har en fil öppen?

Vitals gör det. Skriv en del av filens namn i avsnittet Öppna filer så listas apparna som håller den, på vilken skiva som helst.

I ordlistan

Fler guider