
¿Cómo podemos copiar un archivo y/o directorio solo si en el destino el archivo existe y solo si es más nuevo que en el destino, y para el caso del directorio deberecursivamentecopiar con capacidad tal
como
$ ls -a ~/.config
gtk-2.0/
gtk-3.0/
SpeedCrunch/
$ ls -a /other/path/home/.config/
gtk-2.0/
gtk-3.0/
SpeedCrunch/
$ rsync -u --existing ~/.config /other/path/home/
skipping directory .
no puedo trabajar.
¿Qué utilidad de Linux y cómo hacerla/solucionarla? gracias antes
Respuesta1
Rápido:
Olvidó incluir el modificador recursivo "-r":
rsync -u --existing -r ~/.config /other/path/home/
Cosas adicionales:
Además, puede considerar usar -a
un interruptor que equivale a -rlptgoD
incluir recursivo además de preservar algunos atributos importantes de la siguiente manera:
- -r: recurrir a directorios
- -l: copiar enlaces simbólicos como enlaces simbólicos
- -p: conservar permisos
- -t: preservar los tiempos de modificación
- -g: preservar grupo
- -o: conservar propietario (solo superusuario)
- -D: conserva archivos especiales igual que --devices --specials
Utilice lo siguiente para realizar pruebas:
mkdir src
touch src/file{1..3}
touch src/thefile
# Destination:
mkdir dst
touch dst/file{1..3}
touch -d 20201023 dst/thefile
# List all
free -D src dst
Probar ahora:
rsync -rt -uPv --existing src dst/
Solía:
- -r: recurrir a directorios
- -t: preservar los tiempos de modificación
- -u: omite archivos que son más nuevos en el receptor
- -P: muestra el progreso durante la transferencia
- -v: aumenta la verbosidad
- --existing: omite la creación de nuevos archivos en el receptor