¿Cómo limpiar ._AppleDouble archivos de paquetes unix?

4

Introducción

Aquí está mi problema. En ocasiones, creo el paquete impd deb usando dpkg-deb ( e.g., dpkg-deb --build "folder" file.deb ). El problema es que cualquier archivo con un atributo extendido, lleva consigo un archivo ._AppleDouble al paquete. Entonces, cuando el usuario instala el bit de software, su sistema está lleno de archivos ._AppleDouble.

Por ejemplo,

-rw-r--r--@  1 cksum  staff      18305  9 Sep 22:42 ScreenShot.png

llevaría consigo un archivo ._ScreenShot.png.

Método actual de afrontamiento

Actualmente, estoy usando el comando increíblemente agonizante xattr para enumerar el atributo extendido y luego eliminarlos. Por ejemplo, lo anterior sería llevar lo siguiente como se muestra en xattr ,

com.apple.FinderInfo
com.apple.metadata:kMDItemIsScreenCapture
com.apple.metadata:kMDItemScreenCaptureType

En este caso, tendría que eliminar los recursos de uno en uno, nuevamente usando xattr ,

xattr -d com.apple.FinderInfo ScreenShot.png
xattr -d com.apple.metadata:kMDItemIsScreenCapture ScreenShot.png
xattr -d com.apple.metadata:kMDItemScreenCaptureType ScreenShot.png

Esto es bastante arduo cuando a veces tienes docenas de archivos y se ha vuelto demasiado doloroso.

Soy consciente de la utilidad BlueHarvest , pero no estoy dispuesto a pagar por algo que no usaré todo eso mucho Además, he probado el software y he notado que, desafortunadamente, a veces falla al eliminarlos todos. Por último, es más adecuado para la administración de discos utilizados por diferentes sistemas operativos que para las carpetas locales.

Solución ideal

Una solución ideal sería continuar usando xattr (ya que es la más confiable) pero teniendo el proceso automatizado. Es importante que elimine los archivos ._AppleDouble antes los empaqueto. Sin embargo, esta no es la solución only y ciertamente estoy abierto a todo tipo de ideas. Pero espero poder cumplir mi objetivo sin necesidad de instalar programas adicionales o confiar en demonios.

    
pregunta 22.09.2011 - 00:50

2 respuestas

8

Necesito aprender el uso correcto de xattr.

Aparentemente, xattr tiene un comando "clear" (-c) que se puede aplicar usando un comodín (*), de la siguiente manera,

xattr -cr *

Esto produce una eliminación recursiva de todos los archivos ._AppleDouble de la carpeta actual hacia abajo (el indicador -r lo hace recursivo, mientras que el indicador -c los borra), lo que hace que el proceso sea un comando trivial de una línea.

Sin embargo, esto no borra los archivos .DS_Store. Para eso, puedes emplear el antiguo y antiguo comando "buscar":

find . -type f -name .DS_Store -delete

Esto buscará y eliminará cualquier archivo .DS_Store desde el directorio actual hacia abajo (recursivamente).

Por último, podemos reunirlo todo en forma de un alias al que se llama simplemente escribiendo "xat" (ponga lo siguiente en su archivo .bash):

alias xat='find . -type f -name .DS_Store -delete && xattr -cr *'

Ahora simplemente ejecute "xat" en cualquier directorio y eliminará esas molestas bifurcaciones de recursos y eliminará esos archivos .DS_Store irritantes de cualquier parte de su interior.

    
respondido por el user10355 22.09.2011 - 01:50
3

Hay muchas maneras de hacer esto; Aquí hay una pareja que he usado:

dot_clean /path/folder

combina los archivos de subrayado de puntos con sus archivos principales.

enlace

Si desea segmentar específicamente los archivos .AppleDouble puede usar:

find / -name ".AppleDouble" -depth -exec rm -Rf {} \;

que simplemente los encontrará y los eliminará.

Hay formas en que también puede configurar el proceso con anticipación para compartir SMB, etc. al crear dpkgs. Esto puede o no aplicarse a usted, así que solo quería mencionarlo también.

enlace

    
respondido por el l'L'l 22.09.2011 - 01:58

Lea otras preguntas en las etiquetas