Comment mettre en file d'attente plusieurs fichiers à copier sur un Mac?

15

Lorsque je copie plusieurs fichiers sur un Mac, le système essaie de les copier tous en même temps. Le problème est double.

Tout d'abord, lorsque vous sélectionnez plusieurs fichiers et les copiez, ils entrent tous dans un processus avec une approche «tout ou rien» qui n'est pas sans rappeler ACID dans les bases de données. Souvent, ce n'est pas souhaitable.

De plus, lorsque vous ajoutez d'autres processus de copie, le système essaie de tout copier en même temps.

Par exemple, je décide de copier un gros fichier A, puis plus tard, je décide également de copier un gros fichier B. Il en résulte deux opérations de copie parallèles, que l'un des "gros fichiers" soit également une sélection de nombreux fichiers.

Je n'aime pas cela pour plusieurs raisons:

  • Lorsque plusieurs processus de copie s'exécutent en même temps, il semble enrayer d'autres processus.
  • De plus, lorsque plusieurs fichiers sont copiés en même temps, le processus de copie lui-même semble aller beaucoup plus lentement.
  • Et enfin, si le processus est abandonné, aucun des fichiers n'atteint sa destination.
  • Lors de l'ajout d'un fichier à la file d'attente, il commencera également à copier immédiatement et à ralentir encore plus le processus.
  • C'est un vrai problème lors de la copie sur d'autres machines ou lecteurs sur le réseau (local).

Résultat: le fichier A, que je voulais d'abord transférer et utiliser, prend beaucoup plus de temps à arriver que nécessaire, et lors de la copie à partir d'un disque dur central sur le LAN, je ne peux pas utiliser le premier fichier avant que tous les autres fichiers soient également arrivés.

Ainsi ... Comment mettre en file d'attente plusieurs fichiers à copier sur un Mac? Pour clarifier: peu importe le nombre de fichiers choisis ou ajoutés un par un, je veux qu'ils soient tous placés dans une file d'attente qui ne copie qu'un fichier à la fois, jusqu'à ce que la file d'attente soit terminée.

Les réponses dans Bash et surtout Perl sont également les bienvenues!

Kebman
la source
Je ne comprends vraiment pas la question. Il semble en partie que vous commenciez plusieurs opérations de copie indépendantes à la fois, et encore une fois, vous ne ...? Avez-vous essayé de copier tous les fichiers pertinents dans le cadre de la même opération de copie, par exemple en les sélectionnant tous, puis en les faisant glisser vers la destination; ou en les sélectionnant Cmd-C, puis Cmd-Và destination?
Daniel Beck
@Daniel J'ai essayé de clarifier la question - c'est aussi un problème que j'ai rencontré moi-même: il s'agit de démarrer des opérations de copie indépendantes. La solution serait une file d'attente où vous pouvez simplement mettre des fichiers à copier et les travaux seraient traités de manière séquentielle.
slhck
@slhck Comment et enfin, si le processus est abandonné, aucun des fichiers atteignant sa destination ne s'applique aux opérations indépendantes? Qu'est-ce que je ne peux pas utiliser le premier fichier jusqu'à ce que tous les autres fichiers soient également arrivés. signifier?
Daniel Beck
1
C'est également un problème lors de la sélection de nombreux fichiers et de leur copie. Tous les fichiers constituent un processus où les fichiers ne peuvent pas être mis en file d'attente. C'est à mon humble avis aussi mauvais. Néanmoins, j'aimerais également ajouter des fichiers à une file d'attente.
Kebman
Ils sont en fait copiés les uns après les autres. Vous voulez dire que l'ordre dans lequel ils sont copiés est essentiellement aléatoire?
Daniel Beck

Réponses:

8

UltraCopier

UltraCopier est un utilitaire de copie gratuit et multiplateforme qui est actuellement en développement, il n'est donc pas encore soigné et poli. Une fois installé, il se trouve dans votre barre de menus.

Il gère une liste de copies qui vous permet de mettre en file d'attente les travaux de copie ou de déplacement , qui sont ensuite traités séquentiellement. Vous pouvez également définir la priorité du processus de copie ainsi que la taille de bloc du transfert.

Avec la nouvelle version, vous pouvez regrouper avec une source et / ou une destination similaire, ou simplement toujours ou jamais.

entrez la description de l'image ici

slhck
la source
Agréable! En utilisant! Fonctionne parfaitement! A effectivement recherché XCode, Cocoa et Objective C envisageant d'écrire ma propre application.
Kebman
4

Voici une solution bash:

cp file1 dest1; cp file2 dest2

Répétez cette opération pour le nombre de fichiers que vous souhaitez copier. Continuez simplement à ajouter des points-virgules et des cpcommandes.

Vous pourriez aussi faire

cp file1 dest1 && cp file2 dest2

Dans cet exemple, le fichier ne sera copié que si celui qui l'a précédé a été correctement copié.

Pour un dossier, vous pouvez faire quelque chose comme ceci:

for x in folder/*; do echo "Copying $x"; cp "$x" destdir; done
Wuffers
la source
Mais lorsque vous essayez de copier un dossier entier de cette façon, il est à nouveau traité comme un seul processus, ce qui n'est pas souhaitable. Je veux également que chaque fichier du dossier soit mis en file d'attente.
Kebman
1
@Kebman: Voir ma dernière édition.
Wuffers
2
Soyez conscient des fichiers avec des espaces et des caractères globbing avec l' forapproche. Je le ferais probablement avec un find -print0tuyau xargs -0pour être en sécurité.
slhck
2

Path Finder 6 semble plus facile à naviguer que ultracopier et crée définitivement un signal clair, en plus il a beaucoup plus d'options. Il y a aussi un essai de 30 jours pour cela.

Mais j'utilise cela professionnellement, donc je dis que ça vaut vraiment le coup.

Opérations sur les fichiers dans Path Finder 6 (vidéo YouTube)

TJ Hellmuth
la source
1
Je cherchais une solution gratuite, mais Path Finder est connu pour être une bonne application. En fait, je pense que c'est dommage que Finder soit si simpliste que vous ayez besoin d'une application tierce si vous voulez faire quelque chose de semi-avancé.
Kebman
2

Le Finder alternatif Path Finder inclut une fonctionnalité de file d' attente de copie depuis la version 6.

File d'attente de transfert de fichiers

Accédez aux opérations sur les fichiers en cours à partir d'un élément de la barre d'outils ou d'une fenêtre unifiée distincte.

Daniel Beck
la source
2

En plus de certains des autres gestionnaires de copie de ce fil, vous voudrez peut-être consulter ForkLift: http://www.binarynights.com/forklift/

Avantages:

  • Activer / désactiver la mise en file d'attente,
  • FTP + SFTP + Amazon S3 + WEBDav,
  • Un tas d'outils de synchronisation pratiques destinés aux développeurs.

Les inconvénients:

  • Payé (bien qu'au moment de la rédaction, il y ait un spécial sur l'App Store mais ...),
  • La version App Store manque de fonctionnalités (oh bac à sable).
LordParsley
la source
0

Planifiez ce que vous voulez déplacer

  • Créer des alias des dossiers dans la source
  • Déplacer les alias vers le dossier cible

Faire un script qui trouve les alias et les remplacer par l'origine (déplacer)

Lancez le script et allez vous coucher.

Ramkam
la source
Salut et bienvenue sur superuser.com. Votre message se lit plus comme une discussion que comme une réponse. Veuillez noter qu'il ne s'agit pas d'un forum de discussion et essayez de répondre à la question posée. Je vous remercie! Vous pourriez peut-être modifier votre réponse pour la rendre plus pertinente.
sleske
Je ne veux pas planifier. Je veux juste mettre les fichiers en file d'attente et les faire déplacer un par un sans réfléchir. La création d'alias est superflue si vous utilisez déjà un script. De plus, si je savais comment faire un script, je l'aurais déjà fait. Avez-vous un exemple de script qui prend en charge la file d'attente de fichiers ?
Kebman
Placez les chemins source et les chemins cible dans un fichier texte "queue.txt", séparés par un délimiteur, comme un tube |. Exemple d'une ligne / foo / bar / source | / target. Puis chat queue.txt | en lisant l; do src = "$ (echo" $ l "| awk -F" | "'{print $ 1}')"; dst = "$ (echo" $ l "| awk -F" | "'{print $ 2}')"; echo "Copie de $ src vers $ dst"; cp -r "$ src" "$ dst"; terminé. C'est un exemple très grossier. Je ne vous conseillerais pas de jouer sur des scripts comme ça, il y a des tonnes de pièges. Quoi qu'il en soit, si vous essayez, commencez par lire ceci: devblog.virtage.com/2013/01/…
Ramkam
0

J'ai eu le même problème et j'ai trouvé une application sur l'App Store appelée «CopyQueue».

https://itunes.apple.com/gb/app/copyqueue/id711074010?mt=12

Cela semble fonctionner très bien. Faites simplement glisser le (s) dossier (s) ou fichier (s) que vous souhaitez copier dans la file d'attente et la copie commencera dans la file d'attente. Vous pouvez mettre en pause, réorganiser la priorité de la file d'attente et l'une de mes fonctionnalités préférées est de cliquer sur vérifier pour confirmer que la copie a réussi.

Tris
la source
0

Il y a aussi Mini Copier - L'interface utilisateur ressemble assez à UltraCopier.

Steve Bennett
la source