Come forzare il refresh di una cartella di rete?

A volte capita che una cartella di rete condivisa da Windows o Linux (via samba) o anche da un Mac (via smb o appleshare) venga modificata da altri utenti, ma che nella cartella montata il contenuto non venga visto aggiornato.
Magari sono stati aggiunti nuovi file o nuove cartelle, ma non li vediamo

Questo accade perché il Finder periodicamente controlla se la cartella è stata modificata, e in quel caso la aggiorna, ma se chi ha modificato la cartella ha una data di sistema nel passato rispetto alla nostra… e allora la cartella non risulta modificata dal momento dell’ultimo controllo.
Un pulsante di “Refresh” farebbe magari comodo, ma non c’è.

In questo caso è possibile forzare il refresh della cartella semplicemente effettuandone un “touch” da Terminale, che ne reimposta la data di modifica.

Per chi ha poca dimistichezza con il Terminale, o per chi comunque preferisce farlo direttamente dal Finder, con OS X 10.4 o successivo è possibile creare un Workflow di Automator da salvare come plug-in del Finder.
Il workflow eseguirà un semplice Applescript:

on run {input, parameters}
repeat with elem in input
try
do shell script "touch " & (quoted form of POSIX path of elem)
end try
end repeat
return input
end run

Oppure, in una versione leggermente più avanzata, che forza l’aggiornamento del Finder:

on run {input, parameters}
repeat with elem in input
try
do shell script "touch " & (quoted form of POSIX path of elem)
end try
try
tell application "Finder" to update elem
end try
end repeat
return input
end run

Salvando il Workflow come plug-in del Finder (sempre da Automator) avremo un elemento del menu contestuale di Automator che effettua il “touch” dei file e delle cartelle selezionate, e quindi anche il refresh in rete.

Tra le risorse di faqintosh si trova il Workflow già preparato da scaricare, aprire con Automator, salvare come plug-in.

[ Home | Elenco delle FAQ | Forum | Segnalazioni | Risorse | Feed RSS ]