web-dev-qa-db-fra.com

Essayer de copier un répertoire avec cp et cela prend une éternité (je pense)

J'ai connecté un disque dur externe à mon ordinateur. Je passe à la racine. J'ai monté le disque avec succès! (Yay moi !!)

Maintenant, je veux copier un répertoire entier du disque dur externe dans mon dossier local.

Alors j'ai fait ça:

cp /mnt/external/directory_to_be_copied /home/danai/destination_folder

Il n'y a pas eu d'erreur. Mais dès que je frappe en entrant à la ligne suivante, le _ soulignement clignote. Et ça fait au moins 5 minutes maintenant.

La raison pour laquelle le répertoire que je tente de copier est-il trop volumineux ou existe-t-il un problème?

4
Danae Vogiatzi

Lorsque vous rencontrez ce genre de problème (qui se produit de temps en temps), vous pouvez faire certaines choses.

Tout d'abord, vous avez besoin d'un nouvel invite. Si vous utilisez une interface utilisateur graphique, cela devrait être aussi simple que d’ouvrir une nouvelle fenêtre de terminal. Si vous ne l'êtes pas, vous devriez pouvoir passer à un autre tty en utilisant Ctrl+Alt+F2 par exemple. Une autre alternative consiste à mettre en pause la commande en cours à l'aide de Ctrl+z. Vous pouvez vérifier les tâches que vous avez interrompues à l'aide de la commande jobs et laisser le programme s'exécuter à nouveau en utilisant, par exemple, bg 1, où bg représente l'arrière-plan.

Une fois que vous avez reçu une invite et que le programme, selon vous, prend trop de temps à s'exécuter, vous pouvez commencer à effectuer certaines enquêtes. Une chose à examiner est de savoir si la destination est effectivement remplie:

ls /home/danai/destination_folder

Exécutez la commande plusieurs fois. La sortie change-t-elle? Si oui, vous allez bien. Sinon, nous devons vérifier davantage.

Vérifiez si votre lecteur se remplit:

df

Exécutez la commande plusieurs fois - ou mettez une surveillance dessus:

watch df

La sortie change-t-elle? Existe-t-il un lecteur (contenant votre répertoire personnel) en train de se remplir? Si c'est le cas, la commande est en cours d'exécution, fonctionne et copie quelque chose.

Regardez ce que vous copiez:

du --summarize -h /mnt/external/directory_to_be_copied

Cela vous indiquera approximativement la taille du répertoire que vous copiez. Cela pourrait vous donner un indice sur le temps qu'il faudra.

Si tout cela échoue, la source ne sera peut-être pas vraiment un répertoire, mais plutôt une sorte de périphérique remplissant votre système de fichiers. Il existe de tels dispositifs. Si vous regardez df, vous pouvez voir si un système de fichiers se remplit. Si oui, vous voudrez probablement abandonner.

Retournez au terminal ou au terminal avec lequel vous avez démarré le cp (probablement le tty1 à Ctrl+Alt+F1, si vous ne l’avez pas déjà changée) ou remettez la commande au premier plan avec fg 1 (ou le numéro que votre travail avait, mais probablement 1), et abandonnez-la avec Ctrl+C.

Remarque complémentaire: lorsque vous copiez des répertoires, vous souhaiterez probablement utiliser également cp -r pour copier tous les sous-répertoires.

6
Bex