Υπάρχουν δύο βασικές εντολές στο Command Prompt των Windows για να κάνετε backup τα προσωπικά σας αρχεία. Το Xcopy και το Robocopy; Ποιες είναι οι διαφορές τους και που πρέπει να χρησιμοποιήσετε το κάθε ένα;
Τι κάνετε συνήθως αν θέλετε να αντιγράψετε ένα αρχείο σε ένα υπολογιστή που τρέχει Windows; Κανονικά ανοίγετε την εξερεύνηση αρχείων και χρησιμοποιείτε τη βασική εντολή αντιγραφής copy – paste με τις συντομεύσεις Ctrl + C και Ctrl + V.
Το γνωρίζετε ότι υπάρχουν πιο προηγμένα εργαλεία για αυτή την εργασία; Μιλάμε για τα ενσωματωμένα στην Γραμμή Εντολών, βοηθητικά προγράμματα αντιγραφής αρχείων, Xcopy και Robocopy. Πάμε να τα δούμε αρκετά εκτενέστερα.
Table of Contents
Εντολή Xcopy;
Η εντολή Xcopy είναι ένα πολύ ισχυρό εκτεταμένο αντίγραφο επειδή σας επιτρέπει να αντιγράψετε πολλά αρχεία ή ολόκληρα τα δέντρα καταλόγου από τον έναν κατάλογο στον άλλο, αλλά και σε ένα δίκτυο.
Διαθέτει τρία σημαντικά χαρακτηριστικά: απευθείας αντιγραφή του καταλόγου, αναγνώριση ενημερωμένων αρχείων και εξαίρεση αρχείων με βάση τα ονόματα και τις επεκτάσεις αρχείων.
Εντολή Robocopy;
Το Robocopy αντιπροσωπεύει το Robust File Copy (θα το μεταφράζαμε Στιβαρό Αντίγραφο Αρχείου).
Κατασκευάστηκε για να είναι πιο στιβαρό από το Xcopy καθώς εκτελεί πολύπλοκες ή μεγάλες λειτουργίες αντιγραφής αρχείων, πολύ πιο γρήγορα από την βασική εντολή αντιγραφής.
Το Robocopy είναι σαν ένα ελβετικό μαχαίρι στρατού για διαχειριστές συστήματος. Είναι ιδιαίτερα ωφέλιμο για προγραμματιστές που ασχολούνται με εκτεταμένες δομές καταλόγου και μεγάλους όγκους αρχείων.
Xcopy εναντίον Robocopy
Ας δούμε τις διαφορές των δύο εντολών σε πέντε σημεία: υποστηριζόμενο λειτουργικό σύστημα, mirroring, χαρακτηριστικά, παρακολούθηση και αυτοματοποίηση.
Υποστηριζόμενο λειτουργικό σύστημα
- Η εντολή Xcopy υποστηρίζει τα συστήματα Microsoft Windows, IBM PC DOS, IBM OS/2, MS-DOS, ReactOS και FreeDOS.
- Η εντολή Robocopy, υποστηρίζει Windows XP/7/8/10/11 και άλλα λειτουργικά συστήματα Windows μεταγενέστερα από τα Windows NT 4.
Mirroring
- Το Robocopy χρησιμοποιείται για αντικατοπτρισμό ή συγχρονισμό καταλόγων, ενώ το Xcopy δεν έχει τέτοια δυνατότητα.
- Το Robocopy μπορεί να ελέγξει τον κατάλογο προορισμού και να διαγράψει όλα τα αρχεία που δεν βρίσκονται πλέον στο κύριο δέντρο, αντί να αντιγράψει όλα τα αρχεία από τον έναν κατάλογο στον άλλο.
- Και τα δύο μπορούν να κάνουν differential backup (διαφορικό αντίγραφο ασφαλείας), δηλαδή να αντιγράφουν μόνο όσα αρχεία έχουν μεταβληθεί, μετά το πιο πρόσφατο πλήρες αντίγραφο ασφαλείας, για εξοικονόμηση χρόνου.
Χαρακτηριστικά
- Και τα δύο υποστηρίζουν την αντιγραφή αρχείων. Ωστόσο, το Xcopy υποστηρίζει μόνο μερικά χαρακτηριστικά, ενώ το Robocopy μπορεί να υποστηρίξει την αντιγραφή όλων των χαρακτηριστικών, συμπεριλαμβανομένης της ασφάλειας, του ιδιοκτήτη, των χρονικών σφραγίδων και των πληροφοριών ελέγχου.
Αυτά τα χαρακτηριστικά είναι αρκετά σημαντικά για να διατηρείτε μια σωστή δομή καταλόγου, ειδικά όταν αντιγράφετε αρχεία ως διαχειριστής.
Παρακολούθηση
- Το Xcopy είναι απλούστερο και δεν έχει καν υποστήριξη παρακολούθησης.
- Το Robocopy μπορεί να εκμεταλλευτεί την εντολή /MON ή /MOT για να παρακολουθεί τα αρχεία και τους καταλόγους σας.
Οι παράμετροι /MON:x και /MOT:y στο Robocopy λειτουργούν περίπου ως εξής:
/MON:x = αντέγραψε το αρχείο στον προορισμό με x ή περισσότερες αλλαγές
/MOT:y = θα σας βοηθήσει να ελέγχετε το αρχείο κάθε y λεπτά για τυχόν αλλαγές και στη συνέχεια να αντιγράψετε το αρχείο όταν υπάρχουν κάποιες αλλαγές σε αυτό.
Αυτοματισμός
Όταν θέλετε να δημιουργήσετε καθημερινά αντίγραφα ασφαλείας ή να κάνετε κάποιες μεγάλες εργασίες ενημέρωσης κώδικα που μπορεί να χρειαστούν λίγο χρόνο, αλλά χωρίς καμία αλληλεπίδραση, η αυτοματοποίηση είναι μια αρκετά καλή επιλογή.
Η παράμετρος /RH στο Robocopy σάς δίνει τη δυνατότητα να ορίσετε πότε πρέπει να γίνουν τα αντίγραφα αντί να ρυθμίσετε την ώρα της εντολής, όπως με το Xcopy.
Ταυτόχρονα, η διαδικασία robocopy.exe θα εμφανίζεται στο task list (λίστα εργασιών) σας, αφού θα ελέγχει το ρολόι για να αναζητήσει πότε πρέπει να κάνει αντιγραφή και θα περιέχει επίσης μία καταγραφή με την επιλογή /LOG:file.
Χρήση της κάθε εντολής
Εντολή Xcopy
Η σύνταξη της εντολής Xcopy είναι ως εξής: Xcopy [“πηγή”] [“προορισμός”] [επιλογές].
Ας δούμε ένα παράδειγμα:
Ας υποθέσουμε ότι θέλετε να αντιγράψετε ένα αρχείο που ονομάζεται Source.reg από το φάκελο News2023 της μονάδας δίσκου C στο φάκελο “News2024” της μονάδας δίσκου E. τότε με χρήση της εντολής Xcopy θα γράψετεXCOPY "C:\News2023\Source.reg" "E:\News2024" /I
Συνιστάται να προσθέτετε εισαγωγικά σε κάθε διαδρομή για να αποφύγετε τυχόν σφάλματα, όταν το όνομα του αρχείου και του φακέλου είναι πάνω από 8 χαρακτήρες ή περιέχει κενά.
Όσον αφορά την αντιγραφή ενός φακέλου που περιλαμβάνει όλους τους υποφακέλους, πρέπει να χρησιμοποιήσετε την ακόλουθη εντολή:XCOPY "C:\News2023" "E:\News2024" /S /I
Σχετικά με τις βασικότερες παραμέτρους της Xcopy:
- /C – Συνεχίστε την αντιγραφή εάν εμφανιστεί κάποιο σφάλμα.
- /D:m-d-y – Αντιγράφει τα αρχεία που άλλαξαν κατά ή μετά την καθορισμένη ημερομηνία. Εάν δεν αναφέρεται ημερομηνία, αντιγράφει μόνο τα αρχεία των οποίων η ώρα προέλευσης είναι νεότερη από την ώρα προορισμού.
- /E – Αντιγραφή υποκαταλόγων συμπεριλαμβανομένων των κενών.
- /H – Αντιγραφή αρχείων με κρυφά χαρακτηριστικά και χαρακτηριστικά αρχείων συστήματος.
- /I – H εκτέλεση αυτής της επιλογής θα αναγκάσει το Xcopy να υποθέσει ότι ο προορισμός είναι ένας κατάλογος. Εάν δεν το χρησιμοποιείτε και θέλετε να αντιγράψετε σε έναν ανύπαρκτο προορισμό, η εντολή /I θα σας ζητήσει να εισαγάγετε εάν ο προορισμός είναι αρχείο ή κατάλογος.
- /K – Αντιγράφει τα attributes. Κανονικά το Xcopy θα διαγράψει τα read-only attributes.
- /R – Αντικαθιστά τα read-only αρχεία
- /S – Αντιγράψτε καταλόγους, υποκαταλόγους και τα αρχεία που περιέχονται σε αυτούς εκτός από τους κενούς.
- /Y – Καταργεί την επιβεβαίωση ότι θέλετε να αντικαταστήσετε ένα υπάρχον αρχείο προορισμού.
- /V – Επαληθεύει κάθε αντιγραμμένο αρχείο και φάκελο.
Αν θέλετε να δείτε ένα παράδειγμα πως θα κάνετε ένα αυτοματοποιημένο backup των αρχείων σας με χρήση της Xcopy, διαβάστε το άρθρο μας: xcopy – Windows 11: Πώς να δημιουργήσετε αντίγραφα ασφαλείας.
Παράδειγμα
Αν θέλετε να κάνετε ένα αυτόματο backup διαφόρων φακέλων σε ένα συγκεκριμένο δίσκο, τότε μπορείτε να φτιάξετε ένα txt αρχείο και μέσα να γράψετε το εξής κείμενο:@echo off
REM Συγκεκριμένοι φάκελοι προς δημιουργία backup
set "source_folder1=C:\path\to\source"
set "destination_folder1=D:\path\to\destination"
REM Εκτέλεση του xcopy για τη δημιουργία του backup
xcopy "%source_folder1%" "%destination_folder1%" /E /H /Y /I /D /C /K /R /S
pause
Μετονομάστε το όνομα.txt αρχείο σε όνομα.bat για να γίνει εκτελέσιμο, και τρέξτε το είτε χειροκίνητα, είτε μέσω του χρονοδιαγράμματος εργασιών των Windows.
Το παραπάνω παράδειγμα αντιγράφει όλα αρχεία του source_folder1 στο destination_folder1, μαζί με όλους του υποφακέλους ( /S ) τους, και μόνο τα αρχεία που έχουν αλλάξει, δηλαδή κάνει ένα επαυξητικό αντίγραφο ασφαλείας ( /D ).
Εντολή Robocopy
Η βασική σύνταξη της εντολής Robocopy είναι: Robocopy [πηγή] [προορισμός] [αρχεία] [επιλογές].
Η Robocopy είναι ένα τόσο ισχυρή σαν εργαλείο μεταφοράς αρχείων που έχει περισσότερους από 80 διακόπτες!.
Ας δούμε ένα παράδειγμα:
Ας πούμε ότι θέλετε να μεταφέρετε δύο αρχεία, το arxeio1.doc και to arxeio2.xls από το C:\dimitris στο D:\iguru ως παράδειγμα. Μπορείτε να αντικαταστήσετε αυτά τα ονόματα με τα δικά σας. Στο δικό μας παράδειγμα θα πρέπει να δώσετε την εντολή:
robocopy D:\dimitris E:\iguru arxeio1.doc arxeio2.xls
Συνιστάται να προσθέτετε εισαγωγικά σε κάθε διαδρομή για να αποφύγετε τυχόν σφάλματα, όταν το όνομα του αρχείου και του φακέλου είναι πάνω από 8 χαρακτήρες ή περιέχει κενά.
Αν θέλετε απλά να ανατιγράψετε όλο το αρχείο C:\dimitris στο D:\iguru, η εντολή θα απλοποιηθεί και θα γίνει:
robocopy D:\dimitris E:\iguru
καθώς από προεπιλογή αν δεν αναφέρετε αρχεία, εννοείται όλα τα αρχεία, δηλαδή *.*
Σχετικά με τις βασικότερες παραμέτρους της Robocopy:
- /S – Αντιγράψτε υποκαταλόγους και εξαιρέστε τους κενούς.
- /E – Αντιγράψτε υποκαταλόγους, ακόμα και τους κενούς.
- /J – Αντιγραφή με χρήση I/O χωρίς buffer (συνιστάται για μεγάλα αρχεία).
- /COPY:copyflag[s] – Τι να ΑΝΤΙΓΡΑΦΕΙ με τα αρχεία (η προεπιλογή είναι /COPY:DAT). Μπορεί να δεχτεί D=Data, A=Attributes, T=Timestamps, X=Skip alt streams data, S=Security=NTFS ACLs, O=Owner info, U=aUditing info.
- /PURGE – Διαγράψτε τα αρχεία/dirs που δεν υπάρχουν πλέον στην πηγή.
- /MIR – Καθρεφτίστε ένα δέντρο καταλόγου (ισοδύναμο με /E συν /PURGE).
- /XO – Εξαίρεση παλαιότερων αρχείων και συνήθως γίνεται με την παράμετρο /maxage:n .
- /XC – Εξαίρεση αλλαγμένων αρχείων.
- /XN – Εξαίρεση νεότερων αρχείων.
- /SL – Αντιγράψτε συμβολικούς συνδέσμους ως συνδέσμους αντί ως στόχους συνδέσμους.
- /SEC – Αντιγραφή αρχείων με ασφάλεια (ισοδύναμη με /COPY:DATS ).
- /FAT – Δημιουργήστε αρχεία προορισμού χρησιμοποιώντας μόνο ονόματα αρχείων 8.3 FAT.
- /CREATE – Δημιουργία δέντρου καταλόγου και αρχείων μηδενικού μήκους μόνο.
Και αυτές είναι μόνο ένα μικρό μέρος των παραμέτρων. Υπάρχει ένα σωρό που θα καλύψουν κάθε σας ανάγκη.
Παράδειγμα
Αν θέλετε να κάνετε ένα αυτόματο backup διαφόρων φακέλων σε ένα συγκεκριμένο δίσκο, τότε μπορείτε να φτιάξετε ένα txt αρχείο και μέσα να γράψετε το εξής κείμενο:@echo off
REM Συγκεκριμένοι φάκελοι προς δημιουργία backup
set "source_folder1=C:\path\to\source"
set "destination_folder1=D:\path\to\destination"
REM Εκτέλεση του robocopy για τη δημιουργία του backup
robocopy "%source_folder1%" "%destination_folder1%" /MIR /J /COPY:DAT
pause
Μετονομάστε το όνομα.txt αρχείο σε όνομα.bat για να γίνει εκτελέσιμο, και τρέξτε το είτε χειροκίνητα, είτε μέσω του χρονοδιαγράμματος εργασιών των Windows.
Το παραπάνω παράδειγμα αντιγράφει όλα αρχεία του source_folder1 στο destination_folder1, μαζί με όλους τους υποφακέλους τους, αλλά μόνο τα αρχεία που έχουν αλλάξει. Ταυτόχρονα σβήνει από το destination όσα αρχεία έχει που δεν υπάρχουν πιά στην πηγή ( /MIR ).
Ευχαριστούμε τον Γιώργο Θ. Κανελλάκη για την ευγενική υπόδειξή του στην ακριβή σύνταξη του differential backup.
Και όπως σωστά αναφέρει ” αυτή η διαφορά ανάμεσα σε incremental και differential backup έχει τρελάνει κόσμο και κοσμάκη :) “