GNU/Linux >> Linux Esercitazione >  >> Linux

Linux:come sincronizzare due cartelle con gli strumenti della riga di comando?

Essendo migrato a Linux da Windows, vorrei trovare un software alternativo a Winmerge o meglio imparare gli strumenti da riga di comando per confrontare e sincronizzare due cartelle su Linux. Ti sarei grato se potessi dirmi come eseguire le seguenti attività sulla riga di comando... (ho studiato diff e rsync, ma ho ancora bisogno di aiuto.)

Abbiamo due cartelle:“/home/utente/A” e “/home/utente/B”

La cartella A è il luogo in cui vengono salvati file e cartelle normali e la cartella B è una cartella di backup che funge da mirror completo della cartella A. (Nulla viene salvato o modificato direttamente dall'utente nella cartella B.)

Le mie domande sono:

  • Come elencare i file che esistono solo nella cartella B? (Es. quelli cancellati dalla cartella A dall'ultima sincronizzazione.)

  • Come copiare i file che esistono solo nella cartella B nella cartella A?

  • Come elencare i file che esistono in entrambe le cartelle ma hanno timestamp o dimensioni diverse? (Quelli che sono stati modificati nella cartella A dall'ultima sincronizzazione. Vorrei evitare di usare i checksum, perché ci sono decine di migliaia di file e renderebbe il processo troppo lento.)

  • Come fare una copia esatta della cartella A nella cartella B? Voglio dire, copia tutto dalla cartella A nella cartella B che esiste solo nella cartella A ed elimina tutto dalla cartella B che esiste solo nella cartella B, ma senza toccare i file che sono uguali in entrambe le cartelle.

Risposta accettata:

Questo mette la cartella A nella cartella B:

rsync -avu --delete "/home/user/A" "/home/user/B"  

Se desideri i contenuti delle cartelle A e B per essere lo stesso, inserisci /home/user/A/ (con la barra) come fonte. Questo non prende la cartella A ma tutto il suo contenuto e lo inserisce nella cartella B. In questo modo:

rsync -avu --delete "/home/user/A/" "/home/user/B"
  • -a Esegui la sincronizzazione preservando tutti gli attributi del filesystem
  • -v corri in modo dettagliato
  • -u copia solo i file con un'ora di modifica più recente (o differenza di dimensioni se i tempi sono uguali)
  • --delete elimina i file nella cartella di destinazione che non esistono nel sorgente

Pagina man:https://download.samba.org/pub/rsync/rsync.html


Linux
  1. Come riavviare Linux utilizzando la riga di comando

  2. Come eliminare file con estensione specifica nella riga di comando di Linux

  3. Come convertire un PDF in JPG con la riga di comando in Linux?

  4. Come posso convertire un documento DjVu in PDF in Linux utilizzando solo gli strumenti della riga di comando?

  5. Come sostituire un file in jar con la riga di comando in Linux?

Rimuovi directory in Linux - Come eliminare una cartella dalla riga di comando

Come controllare la versione del sistema operativo con la riga di comando di Linux

Come installare Dig in Linux con esempi di riga di comando

Come comprimere la cartella su Linux

Come trovare l'indirizzo IP nella riga di comando di Linux

Come monitorare l'integrità del server Linux con gli strumenti della riga di comando