Existe-t-il un moyen de copier un dossier sur un support amovible, mais uniquement de copier des fichiers et des sous-dossiers qui sont déjà différents de ceux sur le support amovible?
rsync
J'utilise souvent la ligne de commande suivante pour tester ce qui se passerait, "essai à sec",
Sudo rsync -Havn source-dir/ target-dir
et la ligne de commande suivante pour faire le travail,
Sudo rsync -Hav source-dir/ target-dir
Modifier:
J'utilise Sudo
, lors de l'exécution locale afin de pouvoir conserver la propriété et les autorisations, ce qui est très important pour les fichiers système et les fichiers de configuration. Si vous souhaitez faire de même, veuillez utiliser un système de fichiers Linux, par exemple ext4
dans le lecteur externe.
Si vous copiez "uniquement" des fichiers de données (documents, images, fichiers multimédias ...), vous n'avez pas à vous soucier des autorisations et pouvez utiliser une ligne de commande rsync
plus simple
(Fin de l'édition)
Remarquez la barre oblique de fin. Voir
man rsync
pour plus de détails sur la barre oblique de fin et les paramètres (-H,
-a
, -v
, -n
et -t
)
You use rsync in the same way you use rcp. You must specify a source and a des‐
tination, one of which may be remote.
Perhaps the best way to explain the syntax is with some examples:
rsync -t *.c foo:src/
This would transfer all files matching the pattern *.c from the current direc‐
tory to the directory src on the machine foo. If any of the files already exist
on the remote system then the rsync remote-update protocol is used to update the
file by sending only the differences in the data. Note that the expansion of
wildcards on the commandline (*.c) into a list of files is handled by the Shell
before it runs rsync and not by rsync itself (exactly the same as all other
posix-style programs).
rsync -avz foo:src/bar /data/tmp
This would recursively transfer all files from the directory src/bar on the
machine foo into the /data/tmp/bar directory on the local machine. The files are
transferred in "archive" mode, which ensures that symbolic links, devices,
attributes, permissions, ownerships, etc. are preserved in the transfer. Addi‐
tionally, compression will be used to reduce the size of data portions of the
transfer.
rsync -avz foo:src/bar/ /data/tmp
A trailing slash on the source changes this behavior to avoid creating an addi‐
tional directory level at the destination. You can think of a trailing / on a
source as meaning "copy the contents of this directory" as opposed to "copy the
directory by name", but in both cases the attributes of the containing directory
are transferred to the containing directory on the destination. In other words,
each of the following commands copies the files in the same way, including their
setting of the attributes of /dest/foo:
rsync -av /src/foo /dest
rsync -av /src/foo/ /dest/foo
Note also that Host and module references don’t require a trailing slash to copy
the contents of the default directory. For example, both of these copy the
remote directory’s contents into "/dest":
rsync -av Host: /dest
rsync -av Host::module /dest
You can also use rsync in local-only mode, where both the source and destination
don’t have a ’:’ in the name. In this case it behaves like an improved copy com‐
mand.