Puncte:1

Nu obțineți rezultatul corect când utilizați rsync --delete

drapel ng

Încerc să șterg fișierele folosind rsync --delete, dar continui să primesc această ieșire.

cli screenshot

sudodus avatar
drapel jp
`rsync` nu este un instrument general de ștergere. Este un instrument de copiere pentru a copia/actualiza un arbore de director țintă cu fișiere noi sau actualizate în arborele de director sursă corespunzător. Opțiunea „--delete” este „doar” pentru sincronizare, adică pentru a șterge fișierele din țintă, dacă fișierul corespunzător din sursă a fost șters.
sudodus avatar
drapel jp
`rm` 'remove' este instrumentul standard Linux pentru a elimina alias-ul șterge un fișier: Corespunzător capturii de ecran, puteți încerca `rm /tmp/backup/foto3.txt` sau cu un punct de control, pentru a confirma, `rm -i /tmp /backup/foto3.txt`
Siebren De Coster avatar
drapel ng
@sudodus, așa că pentru a utiliza --delete trebuie să șterg fișierele originale din directorul original?
Puncte:0
drapel jp

rsync --delete

@sudodus, așa că pentru a utiliza --delete trebuie să șterg fișierele originale din directorul original?

da, dar, aș spune că intenția este inversă: vă va ajuta să ștergeți un fișier din țintă, atunci când ați șters fișierul corespunzător din sursă.

Dacă doriți să evitați copierea unor fișiere (dar să le păstrați în sursă), puteți utiliza --exclude.


rsync nu este un instrument general de ștergere. Este un instrument de copiere pentru a copia/actualiza un arbore de director țintă cu fișiere noi sau actualizate în arborele de director sursă corespunzător. The --șterge opțiunea este „doar” pentru a sincroniza, adică pentru a șterge un fișier din țintă, dacă fișierul corespunzător din sursă a fost șters.

Consultați descrierea detaliată în manual om rsync

        --delete șterge fișierele străine din dest dirs
        --delete-before receptorul șterge înainte de xfer, nu în timpul
        --delete-during receptorul se șterge în timpul transferului
        --delete-delay găsi ștergeri în timpul, șterge după
        --delete-after receptorul șterge după transfer, nu în timpul
        --delete-excluded șterge și fișierele excluse din dest dirs
        --ignore-missing-args ignoră argumentele sursă lipsă fără eroare
        --delete-missing-args șterge argumentele sursă lipsă de la destinație


   --șterge
          Aceasta îi spune lui rsync să șteargă fișierele străine de la recepție
          partea (cele care nu sunt de partea expeditoare), ci numai pentru
          directoarele care sunt sincronizate. Trebuie să fi întrebat
          rsync pentru a trimite întregul director (de exemplu, „dir” sau „dir/”) fără
          folosind un wildcard pentru conținutul directorului (de exemplu, „dir/*”)
          deoarece wildcard-ul este extins de shell și rsync devine astfel
          o solicitare de a transfera fișiere individuale, nu fișierele – părinte
          director. Fișierele care sunt excluse de la transfer sunt de asemenea
          exclus de la ștergere, cu excepția cazului în care utilizați --delete-excluded
          opțiunea sau marcați regulile ca fiind potrivite doar pe partea de trimitere
          (vezi modificatorii de includere/excludere din secțiunea REGULI DE FILTRARE).

          Înainte de rsync 2.6.7, această opțiune nu ar avea efect decât dacă
          --recursive a fost activat. Începând cu 2.6.7, ștergerile vor
          apar și când --dirs (-d) este activat, dar numai pentru directoare
          al cărui conținut este copiat.

          Această opțiune poate fi periculoasă dacă este folosită incorect! Este foarte
          idee bună să încercați mai întâi o rulare folosind opțiunea --dry-run (-n) pentru
          vezi ce fișiere vor fi șterse.

          Dacă partea expeditoare detectează erori I/O, atunci ștergerea
          orice fișiere de la destinație vor fi dezactivate automat.
          Acest lucru este pentru a preveni erorile temporare ale sistemului de fișiere (cum ar fi NFS
          erori) din partea expeditorului de a provoca o ștergere masivă a
          fișiere la destinație. Puteți trece peste acest lucru cu
          Opțiunea --ignore-errors.

          Opțiunea --delete poate fi combinată cu una dintre
          --delete-WHEN opțiuni fără conflict, precum și
          --delete-exclus. Cu toate acestea, dacă nici unul dintre --delete-WHEN
          sunt specificate opțiunile, rsync va alege --delete-during
          algoritmul atunci când vorbiți cu rsync 3.0.0 sau mai nou și
          --delete-before algoritm când vorbiți cu un rsync mai vechi. Vedea
          de asemenea --delete-delay și --delete-after.

rm „eliminare” este instrumentul standard Linux pentru a șterge alias, șterge un fișier

Corespunzător capturii de ecran, puteți încerca

rm /tmp/backup/foto3.txt

sau cu un punct de control, pentru a confirma,

rm -i /tmp/backup/foto3.txt
Jags avatar
drapel kp
salut @sudodus ai putea extinde `--exclude` te rog. Să presupunem că `sursă` și `țintă` sunt sincronizate folosind `rsync`; ambele conțin 3 fișiere: `a.txt b.txt c.txt`. Acum îmi place să păstrez `a.txt` în `sursă`, dar nu în `target`; și vrea să elimine `c.txt` din `sursă`, dar vrea să-l păstreze în `target`. Deci, cum ar trebui să folosesc `--exclude`, vă rog. Mulțumesc mult.
sudodus avatar
drapel jp
@Jags, vă rugăm să creați o întrebare proprie și să faceți un link către ea aici, astfel încât să o pot găsi cu ușurință și voi încerca să explic.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.