0 votos

Diff más grandes subdirectorios falla

Estoy comparando dos grandes directorios en dos diferentes externo FireWire 800 discos mediante

diff -r /path/to/directory1 /path/to/directory2 

El tamaño del directorio (y sus subdirectorios) en un disco FireWire es 118.2 GB para 30.000 artículos y 119.56 GB para 30,031 elementos.

Me sorprendió sobre las muchas diferencias reportadas en la salida, como

Binary files /path/to/directory1/with/subdirectory/file_xyz and /path/to/directory2/with/subdirectory/file_xyz differ

y empecé a comparar algunos de ellos de forma individual. Cuando yo les compara con

diff /path/to/directory1/with/subdirectory/with/subdirectory/file_xyz /path/to/directory2/with/subdirectory/with/subdirectory/file_xyz

o incluso

diff  /path/to/directory1/with/subdirectory/ /path/to/directory2/with/subdirectory/ 

diff no se informe de las diferencias entre estos archivos o directorios.

Lo que podría ser una razón por la que los "grandes de la comparación" informes tantas diferencias (o aparentemente falla), mientras que el más pequeño fragmento de comparación no?


Ediciones desde el post original:

  1. La versión de diff estoy usando es GNU diffutils 2.8.1.
  2. Sólo una conjetura aquí, pero podría tener algo que ver con el hecho de que estos directorios están en unidades de disco duro externas que podría experimentar algún tipo de tiempo de espera?
  3. Corrí otra comparación y de nuevo se presenta con una gran cantidad de diferencias entre los directorios. Yo, a continuación, establezca las preferencias del sistema del Ahorro de Energía para que no se configure la pantalla para dormir durante 1 hora, porque había medido con time diff -r /path/to/directory1 /path/to/directory2 que toma entre 45 y 50 minutos para el diff para finalizar. Mis unidades de disco duro y el Mac nunca ir a dormir.
    Yo, a continuación, desmontar los discos y volver a montar. Corría el diff de nuevo y listo encontraron diferencias aparte de un archivo. Yo manualmente en comparación de que se informó de los diferentes archivos y resulta ser idéntico.
    Esto parece confirmar lo que he encontrado por la comparación de fragmentos más pequeños antes. También parece confirmar que hay algo que va con un tiempo de espera como se sospechaba, pero todavía me pregunto que si una unidad FireWire ya no esté disponible o lo que sea, diff no debe reportar una diferencia, pero en lugar de decir "archivo no disponible" o "Sólo en /bla/bla/directorio: file_xyz".
    Curiosamente, la diferencia antes de volver a montar tardó 28 minutos, después de volver a montar, le tomó casi 51 minutos.
    A la luz de que: ¿Qué puedo hacer para evitar que algo así suceda?
    Por supuesto, uno podría decir que nunca se puede configurar la pantalla para ir a dormir o lo que sea, pero que apenas parece resolver el problema subyacente. Algo debe estar pasando, no puedo averiguar qué.

    Como un aparte, en anteriores ocasiones, después de algún tiempo de inactividad en los FireWire, unidades de disco duro que yo estaba tratando de escribir en un archivo y me esta *código de error -50" mensaje (en los que la mente no veo de que durante la operación de comparación). Yo siempre podría "resolver" el problema al desmontar y volver a montar las unidades, pero creo que debe haber una forma totalmente diferente la solución para que:
    Error Code -50 appears during write operation after external hd inactive for a while
    Soluciones como las que se presentan aquí casi no parecen ser la lucha contra el problema subyacente.

0voto

Alex Ixeras Puntos73

Durante una semana he probado una solución recomendada he encontrado en iFixit, cuando alguien encontró un código de error -50 en un HD externo. Parece que para resolver el problema que yo tenía. También me he topado con el código de error -50 antes cuando he tratado de copiar archivos a través de, pero no de inmediato el vínculo con mi problema de no diffs. Yo tenía la sospecha de que algunos de inactividad en las unidades de disco duro externas fue responsable por el fracaso y el artículo parece confirmar que. A la cita de allí para la solución debe ejecutar en problemas similares:

Para evitar este error te quieres ir a Preferencias del Sistema->Ahorro de Energía y por tanto de la Batería y el Adaptador de Alimentación de la marca de la casilla junto a "Poner el disco duro(s) a dormir cuando sea posible" en su computadora. Sí, eso significa que el OS pondrá todas sus unidades a dormir cuando se puede, pero esa es la única forma que he encontrado para solucionar el problema.

Lo que parece ocurrir es que algunos discos duros externos se han firmware que detecta inactividad y giros de las unidades hacia abajo. Si OSX no está configurado con la configuración de ahorro de energía se mencionó anteriormente, a continuación, OSX no espera que las unidades de ir a dormir. Al acceder a la unidad después de que se pone a dormir, obviamente, algo que se cometa un error y el error -50 se produce entre otros problemas.

Al configurar el sistema operativo para poner los discos a dormir el sistema operativo será cuestión de spin-up de comandos.


La única cosa que los puzzles o me sorprende a pesar de que es la razón por la diff informe de las diferencias reales en los archivos, cuando en realidad no podía acceder(?) el archivo correctamente.

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: