1 votos

¿Cómo puedo cambiar mediante programación el "Ocultar extensión" configuración de una lista de archivos?

Por alguna razón, cuando hago un golpe de operación en una lista de archivos (es decir, ls | cat -n | while read n f; do mv "$f" `printf "name-%02d.png" $n`; done, "Ocultar extensión" configuración se activa en todos ellos, y tengo que desmarcar manualmente a través de "Obtener información". ¿Cómo puedo evitar esto, o solucionarlo mediante programación?

EDIT: Los archivos que estaba operando eran nativos capturas de pantalla y por lo tanto ya tenía sus extensiones ocultas. Mi mal!

3voto

Fireflight Puntos 673

Hmmm, eso suena realmente extraño. Me acaba de ejecutar su código de ejemplo en algunos archivos de prueba y no alterar el Ocultar la extensión de la bandera. Estás seguro de que los archivos no tengan esa opción activada antes de ejecutar el comando? Has probado a crear un par de archivos nuevos, verificar manualmente que ninguno tiene la opción seleccionada y, a continuación, ejecuta el comando en ellos?

Yo no puedo ayudar en términos de "cómo evitar esta" parte de tu pregunta, como puedo no logran recrear su problema en mi final. Pero usted puede deshabilitar la configuración mediante programación. Si usted tiene Xcode instalado, puede hacer lo siguiente:

# Disables "Hide extension" for all visible files in current directory
for file in *; do
    SetFile -a e "$file"
done

Tenga en cuenta que si alguna vez quieres hacer el proceso inverso (es decir, activar la configuración), puede hacerlo cambiando la minúscula e a mayúsculas E.

# Enables "Hide extension" for all visible files in current directory
for file in *; do
    SetFile -a E "$file"
done

Si usted no tiene Xcode instalado, consulte esta respuesta en superusuario para obtener instrucciones sobre cómo hacer lo mismo con AppleScript.

Por el camino, usted debe tratar de evitar el análisis de la salida de ls como se ha hecho en el ejemplo. Puede causar problemas si alguno de los archivos que están en el procesamiento de contener un carácter de nueva línea en su nombre de archivo. Esto es particularmente importante si alguna vez escribir un script que será el procesamiento de los archivos que usted no ha creado a sí mismo (ya que no sé cómo se llama). Ver por Qué usted no debe analizar la salida de ls(1) para más detalles.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X