I file temporanei elencati da lsof non esistono

6

Mi piace copiare video in flash per la visualizzazione offline in seguito. Lo facevo caricando il video nel browser (Firefox o Google Chrome), quindi eseguendo questo comando per vedere dove veniva memorizzato il file flash:

lsof | grep ^Google | grep folders

Questo mostrerà tutti i file temporanei che Google Chrome ha aperto al momento, ad esempio:

...
Google    311 mike   21u     REG       14,1    262148 17819373 /private/var/folders/zz/zzTLi2haPMrCYxEbpkwFmS+++TI/-Tmp-/.com.google.chrome.p22bCa
Google    311 mike   22u     REG       14,1      9974 17819369 /private/var/folders/zz/zzTLi2haPMrCYxEbpkwFmS+++TI/-Tmp-/.com.google.chrome.MUo4JT
Google    312 mike  txt      REG       14,1      9974 17819369 /private/var/folders/zz/zzTLi2haPMrCYxEbpkwFmS+++TI/-Tmp-/.com.google.chrome.MUo4JT
Google    312 mike  txt      REG       14,1    262148 17819373 /private/var/folders/zz/zzTLi2haPMrCYxEbpkwFmS+++TI/-Tmp-/.com.google.chrome.p22bCa
... etc

Nessuno dei file esiste, tuttavia:

$ ls /private/var/folders/zz/zzTLi2haPMrCYxEbpkwFmS+++TI/-Tmp-/.com.google.chrome.p22bCa
ls: /private/var/folders/zz/zzTLi2haPMrCYxEbpkwFmS+++TI/-Tmp-/.com.google.chrome.p22bCa: No such file or directory

L'elenco della directory non mostra alcun file o directory come questa esistente:

$ ls -lA /private/var/folders/zz/zzTLi2haPMrCYxEbpkwFmS+++TI/-Tmp-/
total 0
drwxr-xr-x  3 mike  staff  102 Jul 24 18:14 TemporaryItems
srwxr-xr-x  1 mike  staff    0 Jul 24 12:10 com.apple.notify.206.32
srwxr-xr-x  1 mike  staff    0 Jul 24 12:10 com.apple.notify.206.33
drwxr-xr-x  2 mike  staff   68 Jul 24 18:25 hsperfdata_mike

Cosa sta succedendo qui? Perché non riesco ad accedere ai file temporanei?

Poiché il mio obiettivo è copiare il file Flash per una visualizzazione successiva, c'è altro che posso fare?

    
posta Mike Mazur 24.07.2011 - 12:13
fonte

4 risposte

9

Su alcune varianti unix, lsof mostra i file che sono stati cancellati ma sono ancora aperti. Più precisamente, questi file hanno un "conteggio link" di 0, il che significa che non vi è alcuna voce di directory (nessun collegamento, cioè nessun nome) che li conduce, ma i dati del file esistono ancora. I dati del file verranno cancellati quando il file viene chiuso.

La capacità di lsof di visualizzare i file con un numero di link pari a 0 dipende dalla piattaforma e non riesco a trovare nulla in documentazione riguardante la situazione su OS X. Prova a eseguire lsof +L per vedere il conteggio dei collegamenti dei file o lsof +L1 all'elenco solo i file con un conteggio dei collegamenti pari a 0.

Non sarei sorpreso se il plug-in flash creasse il file e fosse immediatamente cancellato, è una tecnica semplice per rendere i dati più difficili da ottenere dall'esterno dell'applicazione. In altre parole, è ciò che l'autore del plug-in farebbe proprio per rendere difficile fare ciò che stai cercando di fare. Se è quello che succede, puoi contrastarlo con qualcosa come libtrash per OSX .

    
risposta data 24.07.2011 - 15:44
fonte
3

lsof senza sudo potrebbe non elencare tutti i file aperti

Regola generale:

  • per garantire risultati completi da lsof , usa sudo

Esempio

Esegui i due comandi di seguito. Osservare le differenze di output. Con i privilegi, aspettati di trovare molte più linee.

Senza privilegi di superutente

lsof / | grep root

Con privilegi

sudo lsof / | grep root
    
risposta data 30.12.2012 - 11:14
fonte
0

Hai provato a inserire il percorso tra virgolette?

In questo modo:

$ ls "/private/var/folders/zz/zzTLi2haPMrCYxEbpkwFmS+++TI/-Tmp-/.com.google.chrome.p22bCa" 
    
risposta data 24.07.2011 - 12:28
fonte
-1

Prova questo:

cp /proc/$pid$/fd/$fdid$

Dove:

  • $pid$ - ID processo
  • $fdid$ - ID descrittore file

Gli ID processo di solito sono 4 digit numeri. I descrittori di file di solito hanno una lettera accanto a loro ( r , u , w , ecc.).

Prendi questo esempio:

Google    311 mike   22u     REG       14,1      9974 17819369 /private/var/folders/z...

Sostituisci $pid$ con 311 e $fdid$ con 22 in modo da ottenere:

cp /proc/311/fd/22
    
risposta data 25.05.2012 - 14:56
fonte

Leggi altre domande sui tag