Hmmm, sembra davvero strano. Ho appena eseguito il codice di esempio su alcuni file di test e non ha alterato affatto il flag Nascondi l'estensione . Sei sicuro che i file non abbiano già questa opzione selezionata prima di eseguire il comando? Hai provato a creare alcuni file nuovi, verificando manualmente che nessuno abbia selezionata quell'opzione e poi eseguendo il tuo comando su di essi?
Non posso aiutarti in termini di "come evitare questa parte" della tua domanda, poiché non riesco a ricreare il tuo problema da parte mia. Ma puoi disabilitare questa impostazione a livello di programmazione. Se hai installato Xcode, puoi fare quanto segue:
# Disables "Hide extension" for all visible files in current directory
for file in *; do
SetFile -a e "$file"
done
Ricorda che se vuoi invertire il processo (ad esempio, attiva l'impostazione), puoi farlo cambiando il% in minuscolo% co_de in un% maiuscolo in% co_de.
# Enables "Hide extension" for all visible files in current directory
for file in *; do
SetFile -a E "$file"
done
Se non hai installato Xcode, vedi questo risposta su superutente per istruzioni su come fare la stessa cosa usando AppleScript.
A proposito, dovresti cercare di evitare di analizzare l'output di e
come hai fatto nel tuo esempio. Può causare problemi se uno qualsiasi dei file che stai elaborando contiene un carattere di nuova riga nel nome del file. Questo è particolarmente importante se scrivi uno script che elaborerà file che non hai creato tu stesso (dato che non saprai come vengono denominati). Vedi Perché non dovresti analizzare l'output di ls (1) per i dettagli.