lsof non mostra tutti i file aperti nell'app Preview

3

Ho circa 43 file aperti nell'anteprima, tuttavia, quando eseguo lsof -c Preview , ottengo solo una frazione di quelli (cioè 8 file) che sono attualmente aperti.

Questo è lo stesso risultato che ottengo quando utilizzo il Monitor attività, ma vorrei salvare l'elenco completo dei file aperti in modo da poter riaprire più avanti questo elenco di file.

Ho trovato alcuni suggerimenti su come recuperare l'elenco dei file correnti aperti in questo link .

Qualcuno ha un suggerimento su ciò che potrebbe accadere? Un'altra soluzione che sarebbe utile è recuperare l'elenco dei file che sono stati aperti nell'ultima sezione Anteprima.

EDIT:

Come commentato da D. A. Vincent, è possibile che i file siano chiusi dopo il caricamento in memoria. Se è possibile fare un osservatore dei file aperti in anteprima e registrarli in un file, questa sarebbe una soluzione appropriata. Soprattutto se questo thread watcher potrebbe essere lanciato all'avvio o al sistema operativo dell'utente.

    
posta Werner 09.05.2017 - 01:59
fonte

1 risposta

4

Ecco una soluzione per i mele. Questo dovrebbe darti un elenco completo di file aperti (incluso il percorso completo) nell'app di anteprima.

Inoltre, se qualche guru di AppleScript incontra questa risposta, sarei grato per ogni critica costruttiva che hai da offrire. :)

set text item delimiters to "\n"
set myList to {}
tell application "Preview"
    set theDocs to get documents
    repeat with eachDoc in theDocs
        set thePath to path of eachDoc
        copy thePath to end of myList
    end repeat
end tell
set the_list to myList as text
tell application "Finder"
    set myFile to "/Users/YourName/YourFolder/FileName.txt"
    do shell script "date >> " & myFile
    do shell script "echo " & quoted form of the_list & " >> " & myFile
end tell

Questo stamperà la data corrente seguita da un elenco di tutti i documenti aperti in Anteprima. Se preferisci omettere la data, rimuovi la riga:

do shell script "date >> " & myFile

Assicurati di inserire le informazioni corrette sulla linea:

set myFile to "/Users/YourName/YourFolder/FileName.txt"

Se vuoi aggiungere un timbro data al tuo nome file, inserisci le seguenti righe sotto il blocco tell application "Finder"

set time_stamp to (do shell script "date \"+%m-%d-%y\"")
set myFile to "/Users/YourName/YourFolder/PreviewProfile_" & time_stamp & ".txt"

Il comando terminal date ha molti formati diversi disponibili. Per leggere le diverse opzioni disponibili, apri il tuo terminale e digita man strftime .

Dopo aver giocato un po 'di più mi rendo conto che questo script può essere ulteriormente semplificato. Questa è una versione più snella che evita alcuni passaggi non necessari dall'originale. Ma il risultato è lo stesso in entrambi i casi.

set text item delimiters to "\n"
tell application "Preview"
    set theDocs to get path of every document as text
    tell application "Finder"
        set time_stamp to (do shell script "date \"+%m-%d-%y\"")
        set myFile to "/Users/YourName/YourFolder/PreviewProfile_" & time_stamp & ".txt"
        do shell script "echo " & quoted form of theDocs & " >> " & myFile
    end tell
end tell

Per facilità d'uso, puoi salvare questo script come un servizio Automator da utilizzare mentre lavori in qualsiasi applicazione. Per farlo, apri Automator , quindi dal menu File seleziona Nuovo o ⌘N dalla tastiera. Quindi seleziona Servizio dalle opzioni visualizzate. All'apertura del documento, seleziona Utilità nella colonna più a sinistra. Quindi seleziona Esegui AppleScript nella colonna a destra di quello. Incolla questo script nella casella che appare. Nelle opzioni a discesa nella parte superiore della pagina, seleziona Il servizio non riceve input e in qualsiasi applicazione . Quindi basta scegliere e nominare, salvare il file e si dovrebbe avere un servizio disponibile da utilizzare in qualsiasi momento nel menu dei servizi.

Aggiornamento

Ecco un modo per leggere e aprire l'elenco dei file appena creati. Questo ti permetterà di scegliere quali file vuoi aprire senza dover aprire tutti i file della lista se non vuoi.

tell application "Finder"
    set file_list to {}
    set my_files to paragraphs of (read "/Users/YourName/path/to/YourFile")
    repeat with nextLine in my_files
        if length of nextLine is greater than 0 then
            copy nextLine to the end of file_list
        end if
    end repeat
    choose from list file_list with multiple selections allowed
    set chosen_Files to the result
    repeat with next_file in chosen_Files
        do shell script "open " & next_file
    end repeat
end tell

Spero che aiuti. Fammi sapere se hai problemi.

    
risposta data 15.05.2017 - 03:05
fonte

Leggi altre domande sui tag