Il y a déjà quelques réponses vraiment géniales ici, mais voici mes commandes préférées, y compris ma propre petite astuce sur la commande rsync
, avec mes options préférées :
1. watch 'du -hs'
(ou, pour plus de granularité : watch -n 1 'du -sk | awk '\''{printf "%.3f Mio %s\n", $1/1024, $2}'\'''
) vous permet de suivre la croissance de taille d'un dossier de destination si cp
est déjà en cours d'exécution :
Et si vous avez déjà lancé un long processus de cp
et que vous ne voulez pas l'arrêter maintenant ?
En supposant que vous ayez déjà lancé cette commande de copie :
# copier récursivement source_dir_name vers destination
cp -r source_dir_name destination
Ouvrez simplement un nouveau terminal, avec l'opération de copie déjà en cours, et exécutez :
# accédez au répertoire de destination
cd chemin/vers/destination/source_dir_name
# Maintenant, regardez, en direct, la taille de cette destination augmenter !
watch 'du -hs'
# OU (Préféré !) voyez même plus de granularité, en Mio X.xxx :
watch 'du -sk | awk '\''{printf "%.3f Mio %s\n", $1/1024, $2}'\'''
Cela fera en sorte que la commande watch
exécute automatiquement du -hs
(ou du -sk | awk '{printf "%.3f Mio %s\n", $1/1024, $2}'
) toutes les 2 secondes (la valeur par défaut de watch
) à l'intérieur de votre répertoire de destination, pour que vous puissiez voir la taille du dossier augmenter en temps réel ! Cela ne vous donne pas un pourcentage complet, mais si vous avez une idée approximative de la taille de ce que vous copiez, cela vous donne certainement quelque chose à observer et à apprécier, en sachant que la destination grandit. Voici un exemple de sortie à l'écran de veille :
-
Cmd: watch 'du -hs'
Sortie :
Toutes les 2.0s: du -hs
2.5G .
-
Cmd: watch 'du -sk | awk '\''{printf "%.3f Mio %s\n", $1/1024, $2}'\'''
Sortie :
Toutes les 2.0s: du -sk | awk '{printf "%.3f Mio %s\n", $1/1024, $2}'
2560.348 Mio .
Au-dessus, vous pouvez voir que la taille actuelle du répertoire actuel (.
) est de 2.5 Gio, ou, plus précisément dans le deuxième cas : 2560.348 Mio. Pour faire en sorte que watch
utilise un intervalle de mise à jour plus lent, comme 5 secondes, ajoutez simplement -n 5
à la commande watch
, comme ceci :
watch -n 5 'du -hs'
# OU (préféré, pour plus de granularité)
watch -n 5 'du -sk | awk '\''{printf "%.3f Mio %s\n", $1/1024, $2}'\'''
2. rsync
est vraiment le meilleur pour cela :
Mes commandes préférées :
# simulation
time rsync -rah --dry-run --info=progress2 --stats source destination
# vraie copie (Important ! Faites d'abord une simulation et lisez le résumé de
# la sortie pour vous assurer que vous copiez ce que vous avez l'intention de copier !)
time rsync -rah --info=progress2 --stats source destination
Remarque : la partie time
en début des commandes ci-dessus affiche simplement un joli résumé du temps total d'exécution de l'opération à la fin. Cela fonctionne avant n'importe quelle commande Linux.
Voici à quoi ressemble un résumé --stats
de rsync
pour une --dry-run
, au fait :
$ rsync -rah --dry-run --info=progress2 --stats /media/gabriel/cdrom ~/temp
2.76G 100% 2570.10Gio/s 0:00:00 (xfr#3836, to-chk=0/4837)
Nombre de fichiers: 4 837 (reg : 3 836, dir : 1 001)
Nombre de fichiers créés : 0
Nombre de fichiers supprimés : 0
Nombre de fichiers réguliers transférés : 3 836
Taille totale des fichiers : 2.76G octets
Taille totale des fichiers transférés : 2.76G octets
Données littérales : 0 octets
Données correspondantes : 0 octets
Taille de la liste des fichiers : 0
Temps de génération de la liste des fichiers : 0.001 secondes
Temps de transfert de la liste des fichiers : 0.000 secondes
Quantité totale d'octets envoyés : 123.88K
Quantité totale d'octets reçus : 15.54K
envoyé 123.88K octets reçus 15.54K octets 278.85K octets/s
la taille totale est de 2.76G l'accélération est de 19 792,78 (SIMULATION)
Références :
- Endroit où j'ai d'abord documenté le type de commande
watch -n 5 'du -sk | awk '\''{printf "%.3f Mio %s\n", $1/1024, $2}'\''
, dans mon tutoriel ROS : mon tutoriel ROS.org : Lecture des messages depuis un fichier bag
Lecture supplémentaire :
- Ma longue réponse sur certains usages avancés de
rsync
et autres : https://superuser.com/questions/1271882/convert-ntfs-partition-to-ext4-how-to-copy-the-data/1464264#1464264
- [une autre de mes réponses] Unix & Linux : Est-il possible de voir la vitesse de copie et le pourcentage copié ?
1 votes
Question en double : unix.stackexchange.com/questions/65077/…
2 votes
Au cas où vous auriez déjà lancé la commande
cp
et que vous ne voulez pas l'arrêter maintenant, vous pouvezwatch
la taille de la destination augmenter comme ceci: askubuntu.com/a/1275972/327339 (watch 'du -hs'
), pour savoir qu'elle augmente vraiment et que la copie fonctionne.