Recientemente al bajar una nueva plantilla y descomprimirla en un nuevo directorio, aparece que con un '@' a un lado de sus permisos de archivo.
jupabeans at TankerMini in ~/workspace/theme
$ ls -ls
total 0
0 drwxr-xr-x 4 jupabeans staff 136 Apr 24 22:07 .
0 drwxr-xr-x 7 jupabeans staff 238 Apr 24 21:56 ..
0 drwxrwxrwx@ 6 jupabeans staff 204 May 28 2015 README
0 drwxrwxrwx@ 121 jupabeans staff 4114 May 28 2015 theme
jupabeans at TankerMini in ~/workspace/theme
$ ls -@ls
total 0
0 drwxr-xr-x 4 jupabeans staff 136 Apr 24 22:07 .
0 drwxr-xr-x 7 jupabeans staff 238 Apr 24 21:56 ..
0 drwxrwxrwx@ 6 jupabeans staff 204 May 28 2015 README
com.apple.quarantine 26
0 drwxrwxrwx@ 121 jupabeans staff 4114 May 28 2015 theme
com.apple.quarantine 26
Eso indica que el archivo tiene atributos extendidos (extended attributes) en OSX. En éste caso '
com.apple.quarantine', una bandera que OSX usa desde Leopard (10.5) para marcar archivos descargados de fuentes no confiables. Cuando ejecutas por primera vez ese archivo, una pantalla de confirmación aparecerá en la pantalla.
Pero ¿qué pasa cuando sólo son archivos de texto? pues nada, pero siempre quedarán marcados y a mi me distraen. Así que los voy a quitar.
Hay varios métodos para quitarlos, el inteligente sería, buscar los archivos marcados en un directorio y quitarlos uno por uno. El brutal sería quitarlos con 'recursive' activado.
$ xattr -dr com.apple.quarantine theme
xattr
es el comando para manejar los atributos extendidos,
-d
es la opción para borrarlo
-r
activa recursividad, luego el nombre del atributo y al final el directorio o archivo.
Hay varias plantillas que tienen los archivos marcados como ejecutables, para quitarlos simplemente:
$ chmod 755 $(find theme -type d)
$ chmod 644 $(find theme -type f)
En ocasiones los espacios en los nombres de archivos pueden confundir los argumentos de chmod. Se puede usar las siguientes alternativas.
$ find theme -type d -exec echo -n '"{}" ' \; | xargs chmod 755
$ find theme -type f -exec echo -n '"{}" ' \; | xargs chmod 644
*actualizado 22 noviembre 2016
Otro método para remover los atributos extendidos
$ xattr -rc .