La utilidad DirComp compara dos directorios (y - si especificado - sus directorios bajos). Se puede compara para la existencia o para la fecha (del cambio último; siguente llamada "timestamp") o para el contenido.
El exito está el numero de los ficheros diferentes 1 (excepto especificado diferente).
Modo de empleo:
DirComp [<Option(s)> ...] directorio-original directorio-nuevo
DirComp --daemon[[=]<port>]
DirComp --server[[=]<port>]
con sentido siguente de los parámetros:
Opción ....... Opciónes de control por el programa
-s, --recursive ....... Compara también directories bajos
-E, --rec-equal ....... Compara solamente directorios bajos con nombres iguales
-n, --no-changed ...... Supresa ficheros más joven o más viejo
-N, --existing ........ Supresa ficheros borrado o nuevo
-e, --equal ........... Visualiza también ficheros iguales
-d, --show-dirs ....... Visualiza directorios con fechas diferentes
-v, --verbose ......... Visualiza la fecha de los ficheros
-H, --hidden .......... Incluye ficheros ocutles en la comparación
-c, --compare ......... Compara el contenido de ficheros (diferentes) (si están legible)
-C, --force-compare ... Compara el contenido de todo los ficheros (si están legible)
-i, --include ......... <Fichero>: Limita la comparación a los ficheros especificados
-x, --exclude ......... <Fichero>: Excluye los ficheros especificados de la comparación
-I, --include-dirs .... <Ficheros>: Limita la comparación a los directorios especificados
-X, --exclude-dirs .... <Ficheros>: Excluye los directorios especificados de la comparación
-t, --begin-time ...... <Fecha>: Frontera baja del espacio del tiempo para la comparación
-T, --end-time ........ <Fecha>: Frontera alta del espacio del tiempo para la comparación
-V, --version ......... Informa de la versión
-q, --quiet ........... Modo silencioso (no muestra información inecesaria)
-Q, --silent .......... Modo más silencioso (no muestra ninguna salida)
-a, --action .......... <Acción>: Performa acción a los ficheros encontrados (que están mostrado)
-A .................... <Diferencia>[<Acción>]: Performa acción a los ficheros encontrados que pegan a la diferencia pasado
-S, --server .......... [<puerto>]: Inicia como servidor (en el primer plano)
-D, --deamon .......... [<puerto>]: Inicia como servidor (en el fondo)
-r, --ret-changed ..... Returna el numero de ficheros cambiados (más joven o más viejo)
-R, --ret-new ......... Returna el numero de los ficheros borrados o nuevos
-h, -?, --help ........ Muestra esta ayuda, y finaliza
Originaldir ... Directorio de origen (basis de la comparación)
Comparedir .... Directorio de comparación (directorio nuevo)
La llamada de
DirComp -d Test1 Test2
pudría resultar en (por ejemplo)
Viejo : DirComp.cpp
Nuevo : DynArray.h
Joven : Test
Nuevo : Another
Borrado: Other
Borrado: DirComp.Mak
La opción s compararía también los directorios bajos Test, Other y Another. Parecido es la opción E, solamente que la compara directorios bajos que existen en ambos directorios.
La opción n supresaría los líneas de Joven/Viejo; similario a la opción N, que supresaría los líneas de Nuevo/Borrado.
Para muestrar también ficheros iguales (que tienen los mismos nombres y fechas (y contenido, si está especificado)) la opción e tiene que especifado. Eso pudría resultar en salida como:
Igual : DirComp.h
Si la opción d no estaría especificado, la línea "Joven : Test " no estaría mostrado (eso es estándar, porque Test está un directorio quienes diferencia de tiempo lo no importa generalmente).
La opción v mostra el timestamp de todo los ficheros diferentes. Si el fichero comparado esiste en ambos directorios, los timestamps de los están mostrados.
La opción c compara los contenido de ficheros con timestamps diferentes (y dimensiónes iguales) y mostralos solamente si los están diferentes también.
La opción C compara los contenido de ficheros independete de sus timestamps. Ficheros diferentes (con timestamps iguales) causan la salida siguenta:
Distinto: DirComp.cpp
Ficheros ocultos pueden ser incluido por la comparación con la opción H. Cuales ficheros los son dependende del sistema operativo; Unices oscuran ficheros que empezan con un punto (.), otros (como OS/2 o DOS y su colección grafico de bugs) tienen un atributo especial para marcarlos.
La opción i restricta la comparación a ficheros (no directorios!), que pegan la especificación pasado. Los fijadores de posiciónes asterisco (*) (significa cada numero de todos los letras) y el signo de interrogación (?) (significa cualquiera letra solo) están suportado. Además está posible especificar las letras validas en chorchetes ([) y (]), o por detallarlos o por especificar las fronteras, seperado por un menos (-). Para invertir esa selección usa una primera caret (^).
Análogo hay la opción x que excluya ficheros de la comparación.
Especificaciónes pueden ser combinado o por separadolos con la letra seperado del camino del sistema operativo (dos puntos (:) en Unices; punto y coma (;) en OS/2, DOS y Windoze) o por volver a usar la opción respectiva.
p.e. -i*.cpp -i *.h -x*[^1-9].cpp:[A-EXYZ]*.cpp para Unices
p.e. -i*.cpp -i *.h -x*[^1-9].cpp;[A-EXYZ]*.cpp para OS/2, DOS
Esas opciónes están inspectado de derecha a izquierda, entonces esribe las más generals al principio; si falta una opción para incluir ficheros, primero todo los ficheros/directorios están incluido (antes excluirlos).
Similar a las dos opción ultimas, I and X restrictan la comparación a los directorios especificado.
fijadores de posiciónes están suportado en más nivels para directorios; por ejemplo (para Unices) -I*/?0 incluye todo los directorios en segundo nivel que terminan con un 0; -XLinux/* no compara todo los directorios en el directorio Linux.
Si (al menos) uno de las ultimas opciónes está especificado, directorios bajos están comparado automatico (incluso si la opción s no estuvo especificado; hace sentido, ¿si no?).
Las opciónes t y T restrictan la comparación a ficheros que están en la área del los tiempos especificados (incluido los fronteras); t especifica la frontera baja y T la alta.
Esas opciónes expectan la fecha en el formato D.M.AAAA-h:m:s como parameter; cada de los valores puede ser serperado con cada letra non-numerico. Nota: No usa ceros primeros!
Nota: Si hay dos ficheros con nombres mismos, donde solamente uno está entre las fronteras, lo está reportado como nuevo (or borrado); ficheros afueros del los fronteras no existen (por lo menos para la utilitad)!
La opción V mostra informaciones adicionales sobre el programa (como fecha de la compilación y información sobre el escritor) y una descripción más detallado durante mostra la ayuda.
La opción q supresa las líneas adicionales (excepto - por supuesto - para la ayuda) y restricta por eso las salidas de informaciones sobre los ficheros (según los otros opciónes). Lo sirve para procesar las salidos automatico.
Útil para procesar automatico son también las opciónes r, R y Q. La ultima supresa todas las salidas del programa; la principia returna el numero del los ficheros cambiados (no los nuevos o borrados exactamente) y la segunda el numero de los nuevos o borrados (por defecto es todos los ficheros diferentes)1.
Las opciónes a y A permitan de especifar acciónes, que deben ser executado a los ficheros diferentes. En los paramaters para las acciónes los fijadores de posición siguentes son cambiado:
| Fijadores de posición | Cambiados con |
|---|---|
{OP} | Camino del fichero original |
{OF} | Camino y nombre del fichero original |
{CP} | Camino del fichero nuevo |
{CF} | Camino y nombre del fichero nuevo |
La opción A también necesita una necesita una especificación, para cual ficheros la acción debe ser ejecutado. Valores posibles (que pueden ser conectado con OR) son:
| Change-ID | Associated files |
|---|---|
1 | Ficheros más joven |
2 | Ficheros más viejo |
4 | Ficheros diferentes (mismo timestamp pero contenido diferente según la opción C) |
8 | Ficheros iguales |
16 | Ficheros borrados |
32 | Ficheros nuevos |
Si menos (-) es especificado como acción (o ninguno por A) no acción es performado (para actualizar el directorio original pudrías usar los commandos (equivalentes)):
DirComp "-acp {CF} {OP}" -A26 . ..
DirComp "-A37cp {CF} {OP} +1" . ..
Directorios pueden ser comparado sobre un red. Para hacerlo la utilidad tiene que iniciado como servidor (las opciónes S o D) on la maquina distante. El directorio es especificado como <servidor>:<directorio>[:<puerto>]. Un ejemplo es:
DirComp /usr/local/src/DirComp prod:/usr/local/DirComp:4711
Al servidor prod la utilidad tiene que ser iniciado como:
DirComp -D 4711
Para mostrar errors ocurado (y no solamente escribirlos al system-log), la opción D podría ser cambiado con S. El puerto por defecto para la comunicación es 31336.
Usa esa característica con cuidado porque la pudría producir informaciónes sobre la estructura de los directorios y los programas instalados (y sus versiones) a un agresor! Lo es la razon porque esa cualidad tiene que ser activado durante la compilación.