1 votes

Transfert de plusieurs fichiers d'un dossier à un autre en utilisant le Terminal

Je suis un nouvel utilisateur de macOS, alors veuillez accepter mes excuses à l'avance si ma question semble très trivial ou stupide.

J'ai un dossier qui contient 13000 images. Je veux transférer ces images dans trois dossiers différents de telle manière que cinq mille images aillent dans deux dossiers différents chacun et les 3 mille restantes aillent dans le troisième dossier.

Après avoir cherché un moment, j'ai utilisé la commande suivante pour transférer les premières 5000 images mais ça n'a pas fonctionné. Voici mes étapes:

  1. Je suis allé dans le dossier source qui contient les images

  2. J'ai utilisé cette commande pour copier les images cp head -5000 ../Paras_valid, mais cela n'a pas fonctionné.

Est-ce que quelqu'un peut m'aider à copier les fichiers multiples dans différents dossiers?

3voto

nohillside Points 82672

Ceci est plus difficile qu'il n'y paraît. Ce qui suit suppose que toutes les images à copier se trouvent dans le même répertoire (pas de sous-répertoires).

cd "CHEMIN/VERS/Paras_all"
count=0
find . -maxdepth 1 -iname '*.png' -print | while IFS= read line; do
    if [[ $count -lt 5000 ]]; then
        echo cp "$line" ~/"Documents/CIBLE1"
    elif [[ $count -lt 10000 ]]; then
        echo cp "$line" ~/"Documents/CIBLE2"
    else
        echo cp "$line" ~/"Documents/CIBLE3"
    fi
    ((count++))
done

Remplacez -name '*.JPG' pour correspondre à vos images et CIBLE1 etc par les noms actuels. Si vous exécutez le code de cette manière, il se contentera d'afficher les commandes. Supprimez le echo si les commandes semblent correctes.

PS : Il est probablement plus simple de mettre tout dans un fichier avec #!/bin/bash sur la première ligne, rendre le fichier exécutable avec chmod +x NOMDUFICHIER puis exécuter ./NOMDUFICHIER.

2voto

Natsfan Points 12853

Vous pouvez d'abord aller dans Finder et ouvrir le dossier contenant toutes les images. Je sélectionnerais tous les fichiers et ferais un clic droit. L'une des options que vous verrez lorsque vous cliquerez avec le bouton droit sera Renommer 13000 fichiers. Si vous cliquez sur cette option, une fenêtre s'ouvrira dans laquelle vous pourrez renommer les fichiers dans l'ordre séquentiel. Vous pouvez définir la première partie du nom et il ajoutera la partie séquentielle.

Maintenant, créez un dossier pour les premiers 5000 fichiers. Vous pouvez simplement sélectionner les premiers 5000 fichiers et créer un script shell qui s'exécute de 1 à 5000 et l'exécuter depuis le nouveau dossier vide. La commande qui s'exécute 5000 fois est, depuis le nouveau répertoire, "cp ../ancien_nom_du_dossier/nom_du_fichier_inum*". Cela copiera les fichiers *_00001 à *_05000 dans votre premier nouveau dossier. Ensuite, créez un deuxième répertoire et exécutez votre script de *_05001 à *_10000 et enfin exécutez une troisième fois pour obtenir les fichiers 10001 à 13000.

Le script shell Unix réel est le suivant

for i in {0001..5000}
do
cp ../anciens_fichiers_image/image_files_$i cible1/
done

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X