In Linux, copiamo i file come facciamo in qualsiasi altro sistema operativo disponibile oggi. Apriamo un file manager, selezioniamo un file da copiare e lo incolliamo dove vogliamo. Ma cosa succede se si desidera o è necessario copiare file o directory in Linux tramite la riga di comando o applicare alcuni filtri aggiuntivi prima di copiare? Bene, è facile.
Copiare file o directory in locale
Se hai bisogno di copiare file o directory localmente da una directory all'altra, c'è un semplice comando per questo:cp.
cp – Copia file e directory
Sintassi di base
cp source destination_path
La sintassi di base del comando accetta due argomenti, il primo è il percorso del file o la directory e il secondo è il percorso di destinazione in cui si desidera copiare il file o la directory. In qualsiasi sistema Linux, questo comando funzionerà perfettamente, ma potrebbero esserci casi in cui dovresti essere a conoscenza di alcune importanti opzioni fornite dal comando cp.
–backup[opzione]
Spesso abbiamo bisogno di copiare così tanti file contemporaneamente in una posizione in cui alcuni di questi file potrebbero già esistere. In tale scenario, il comportamento predefinito del comando cp sovrascriverà tutti i file esistenti. Questo potrebbe essere problematico se i file contengono dati diversi al loro interno.
In tal caso, possiamo utilizzare l'opzione –backup e indicare al comando come eseguire un backup di ogni file esistente nella directory di destinazione.
cp -v --backup myphotos Downloads/allphotos
Il comando precedente copierà tutti i file da myphotos nella directory allphotos all'interno della directory Download. Se la directory allphotos contiene già uno qualsiasi dei file che trasferiamo da myphotos, creerà un backup di quel file. Un'altra caratteristica importante del comando cp è che può tenere traccia delle versioni di backup.
Il comando precedente rinominerà il file di backup con il nome file originale + "`" alla fine.
Tieni traccia delle versioni dei backup
Le opzioni vuote –backup creano un backup di ciascun file nella directory di destinazione e, se si tenta di copiare nuovamente il file, il comando sostituirà i file di backup esistenti con i nuovi file di backup. Se desideri conservare i file di backup esistenti e crearne uno nuovo ogni volta che provi a copiare i file nella stessa directory, puoi passare l'opzione "numerata" o "t" a -backup.
L'opzione numerata creerà i file di backup e aggiungerà un numero di backup alla fine di ogni file di backup. Ecco un comando di esempio –
cp -rv --backup=numbered myphotos Downloads/allphotos
Il comando precedente copierà tutti i nuovi file nella directory di destinazione e verrà eseguito il backup dei file duplicati e sostituiti con i nuovi file. Ogni file di backup avrà un numero di versione aggiunto al nome del file.
Aggiorna file
Una delle opzioni più utili del comando cp è '-u'. Questo copia solo i file più recenti nella destinazione e lascia il resto. Ad esempio, se un file esiste già nella directory di destinazione, l'opzione '-u' confronterà entrambi i file e copierà solo se il file da copiare è più recente di quello già esistente.
cp -rv -u myphotos Downloads/allphotos
Copia solo gli attributi dei file (–solo attributi)
Se vuoi creare file con alcuni degli attributi dei file esistenti, puoi passare l'argomento –attributes-only. Creerà file nella destinazione specificata con gli stessi attributi e non con i dati. Ecco un esempio –
cp -rv --attributes-only myphotos Downloads/allphotos
Chiedi prima di sovrascrivere qualsiasi file con "-i" e "-n"
Quando si esegue il backup di un file, viene eseguito il backup del file esistente, quindi il file viene sostituito con quello nuovo. Cosa succede se vuoi che il comando te lo chieda prima di sovrascrivere qualsiasi file? È possibile con le opzioni '-i' e '-n'.
cp -rv -i myphotos Downloads/allphotos
Ask before overwriting any file
cp -rv -n myphotos Downloads/allphotos
Do not overwrite any file at all
Ora il comando sovrascriverà un file duplicato solo se digiti "y" quando richiesto dal comando. E l'opzione '-n' non sovrascriverà alcun file.
Conserva gli attributi dei file durante la copia
Tutti i comandi cp precedenti copieranno i file e i loro dati in una destinazione ma senza preservare gli attributi del file come autorizzazione, proprietà e timestamp. Per copiare o conservare anche gli attributi dei file, usa l'opzione '-p' nel comando cp.
cp -rf -p myphotos Downloads/allphotos
The above command will not only copy files data but also preserve all the attributes.
Nota
L'opposto dell'argomento -p è '–no-preserve'.
Quindi queste erano alcune importanti opzioni disponibili per il comando cp. Per l'elenco completo delle opzioni, vedere la pagina man del comando cp.
man cp
FreeFileSync:confronta e sincronizza i file
FreeFileSync è uno strumento facile da usare per sincronizzare i file tra due directory. Ha tutte le funzionalità sopra menzionate più molte opzioni più avanzate per aiutarti a copiare un gran numero di file.
Puoi selezionare due directory tra cui sincronizzare i file, applicare i filtri e fare clic su confronta. In base al filtro che applichi, eseguirà la scansione di entrambe le directory e fornirà i risultati. Se sei soddisfatto dei risultati, puoi fare clic sul pulsante "Sincronizza" per avviare il processo di copia.
Confronta i file in base a tempo, dimensioni e contenuto
Facendo clic sull'icona "ingranaggio" accanto al pulsante "Confronta" sarà possibile selezionare le proprietà da confrontare quando si confrontano due directory. Per impostazione predefinita, lo strumento confronta l'ora e la dimensione del file, ma puoi anche scegliere di confrontare la dimensione dei file o del contenuto.
Applica filtri
FreeFileSync può anche applicare filtri durante la scansione della directory di origine e prenderà in considerazione file o directory solo se almeno una delle condizioni nel campo di inclusione è soddisfatta o se nessuna delle condizioni nei campi di esclusione è soddisfatta.
Ad esempio, per eseguire l'escape di tutti i file da una directory specifica nella directory di origine, aggiungi il nome della directory nel campo di esclusione, imposta la dimensione minima o massima dei file o imposta l'intervallo di tempo per selezionare solo i file creati o modificati nel tempo specificato .
Puoi anche escludere file con un'estensione, un nome o una parola specifici da qualche parte nel percorso.
\*.gif
This will exclude all the files in the base directory with '.gif' extension.
\tower.png
This will exclude the file in the base directory with the name tower.png.
*mountains*
This will exclude all the files in the base directory with the word 'mountains' anywhere in the path.
Per ulteriori esempi di filtri, vai alla pagina ufficiale di FreeFileSync.
Scarica FreeFileSync
ScaricaConclusione
Quindi si tratta di copiare file o directory in Linux. Puoi utilizzare uno qualsiasi dei metodi precedenti per copiare le directory in Linux. Il prossimo articolo ti mostrerà come copiare o sincronizzare comodamente file tra computer Linux sulla stessa rete o su reti diverse.