Question Comment déplacer tous les fichiers d'un dossier vers un autre en utilisant la ligne de commande?


Je voudrais savoir comment je peux déplacer tous les fichiers d'un dossier vers un autre dossier avec une ligne de commande.

Disons que je suis dans mon dossier Téléchargements et qu'il y a 100 fichiers que je voudrais déplacer dans mon dossier Vidéos, sans avoir à écrire tous les noms de fichiers.


167
2017-08-06 15:14


origine


Vous demandez à propos du déménagement files mais les gens vous montrent comment bouger non seulement files mais foldersainsi que. Est-ce que ça va? - Askar


Réponses:


Ouvrez un terminal et exécutez cette commande:

mv  -v ~/Downloads/* ~/Videos/

Il déplacera tous les fichiers et dossiers du dossier Downloads vers le dossier Videos.


Pour déplacer tous les fichiers, mais pas les dossiers: 

Si vous souhaitez déplacer tous les fichiers (mais pas les dossiers) du dossier Downloads vers le dossier Videos, utilisez cette commande.

find ~/Downloads/ -type f -print0 | xargs -0 mv -t ~/Videos

Pour déplacer uniquement les fichiers des dossiers de téléchargement, mais pas des sous-dossiers:

Si vous souhaitez déplacer tous les fichiers du dossier Downloads, mais pas les fichiers des dossiers du dossier Download, utilisez cette commande:

find ~/Downloads/ -maxdepth 1 -type f -print0 | xargs -0 mv -t ~/Videos

ici, -maxdepth option spécifie la profondeur à rechercher, 1 signifie uniquement le répertoire spécifié dans la commande find. Vous pouvez essayer d'utiliser 2, 3 également à tester.

Voir l'Ubuntu trouver la page de manuel pour une explication détaillée


234
2017-08-06 15:18



vous pouvez utiliser mv seul pour déplacer un répertoire entier vers un autre dossier: mv folder ~ / Documents - JohnMerlino
FYI Je crois que votre première commande ("mv -v ~ / Downloads / * ~ / Videos /") ne déplacera pas les fichiers de points. - Mark Doliner
Oui, il ne déplacera pas les fichiers. - Anwar
Nb. votre -print0 | xargs -0 mv -t ~/Videos peut être fait plus efficacement avec -exec mv -t ~/Videos \{\} \+ :-) - artfulrobot
Ouais c'est vrai. J'étais novice alors quand j'ai répondu à la question - Anwar


mv ~/Downloads/* ~/Videos

Il déplacera tous les fichiers, y compris les sous-dossiers du répertoire que vous voulez mv. Si tu veux cp (copie) ou rm (supprimer) vous aurez besoin du -r Option (récursive) pour inclure les sous-dossiers.


17
2017-12-08 03:24



Ma commande mv n'a pas d'option -R (Ubuntu 14.04). - Mark Doliner
@MarkDoliner, oui, mv n'a pas besoin d'une option récursive pour inclure les sous-dossiers. On peut l'utiliser aussi pour renommer. - AliNâ
Je n'avais pas besoin de *. La même chose s'est produite sans utiliser l'étoile. - MycrofD
Le ~ / dans le préfixe des noms de dossiers ne fonctionne pas toujours (ne fonctionne pas sur bash et git atleast) - Krish Munot
Cette solution donnera une erreur si le répertoire source est vide. - Pierre Thibault


C'est possible en utilisant rsync, par exemple:

rsync -vau --remove-source-files src/ dst/

où:

-v, --verbose: Augmente la verbosité.

-a, --archive: Mode d'archivage; équivaut à -rlptgoD (non -H, -A, -X).

-u, --update: Ignorer les fichiers plus récents sur le récepteur.

--remove-source-files        Cela demande à rsync de supprimer du côté expéditeur les fichiers (c'est-à-dire les non-répertoires) qui font partie du transfert et qui ont été dupliqués avec succès du côté réception.

Si vous disposez des privilèges root, préfixez avec sudo pour remplacer les problèmes d'autorisation potentiels.


5
2018-06-06 15:08



ATTENTION! l'option --delete-after, comme indiqué, ne fonctionne pas comme prévu. Il ne supprime pas le la source fichiers après copie réussie ... IL DELETTE TOUS LES FICHIERS RESTANT / AUTRES DANS LA DESTINATION. (comme @kenorb a noté ... mais je n'ai pas lu assez attentivement! DOH) - Jay Marm


Utilisation

mv -v ~/rootfolder/branch/* ~/rootfolder

J'espère que ça aide. Parce que j'avais la même douleur et que je perdais beaucoup de temps à réparer mon erreur.


2
2018-01-25 23:06





Pour le cas simple:

mv ~/Downloads/* ~/Videos

Si vous souhaitez également déplacer des fichiers de points, définissez le dotglob option shell

shopt -s dotglob
mv ~/Downloads/* ~/Videos

Cela laisse le jeu d'options shell.

Pour une seule fois, dotglob utilise les commandes dans un sous-shell:

(shopt -s dotglob; mv ~/Downloads/* ~/Videos)

2
2018-01-22 10:16





  1. Accédez à la ligne de commande et accédez au répertoire dans lequel vous souhaitez le déplacer avec cd folderNamehere
  2. Type pwd. Cela imprimera le répertoire que vous souhaitez déplacer également.
  3. Ensuite, accédez au répertoire contenant tous les fichiers. cd folderNamehere
  4. Maintenant, déplacez tous les types de fichiers mv *.* typeAnswerFromStep2here

Cela va déplacer tous les fichiers de ce répertoire vers l’autre.


1
2017-09-12 12:07



Cela ne correspondra pas aux fichiers sans aucune extension. Par exemple, si un dossier contient les fichiers: foo.txt, bar. et bar tous les deux bar. et bar ne sera pas déplacé. En utilisant * au lieu de *.* s'en occupe. Mais dans les deux cas, les fichiers cachés comme: .foobar ne sera pas déplacé. - Dan


Pour déplacer un répertoire avec ou sans contenu à son nouveau nom, comme vous utiliseriez le mv commande pour renommer un fichier:

mv -T dir1 dir2

où:

  • -T traite la destination comme un fichier normal
  • dir1 est le nom d'origine du répertoire
  • dir2 est le nouveau nom du répertoire

NB: dir2 ne doit pas exister.

J'espère que cela fera gagner beaucoup de temps, en tant que noob, avant cela, je créerais un répertoire avec le nouveau nom, puis déplacerais le contenu du répertoire dans le répertoire créé précédemment.

Utiliser pour les sous-répertoires

Cette commande est utile lorsque de nombreux fichiers ont été enregistrés dans un sous-dossier du répertoire cible, par exemple Downloads/mp4. Dans cet exemple, en cours d'exécution mv -T Downloads/mp4 Videos aura pour résultat mp4 sous-dossier étant enlevé et tous les fichiers contenus à l'intérieur sont déplacés vers le dossier Vidéos.


0
2017-12-09 07:33



+1 parce que testé en travaillant dans Xubuntu 14.04. J'ai ajouté un exemple dans cette réponse pour montrer que cette commande provoquera la dir1 à supprimer. En dehors de cette précaution, cette réponse a noté quelque chose de bon pour un usage quotidien. - clearkimura
"Pour déplacer un répertoire avec ou sans contenu vers son nouveau nom" Comment déplacer un répertoire ... vers un nom? Ça n'a aucun sens. "-T traite la destination comme un fichier normal" Comment une destination peut-elle être un fichier? Voulez-vous dire répertoire? - Monica Heddneck
C'est comme renommer un fichier à son nouveau nom comme vous le feriez avec quelque chose comme mv fileA fileB mais le -T Dans ce cas, le drapeau traite le répertoire / destination comme un fichier et le renomme. - Feyisayo Sonubi


l'essayer

find ~/Desktop -type f -iname  "*.mp4" -exec mv {} ~/Videos \;

-type avec l'argument -type, vous pouvez spécifier le type file.on cette instruction qui est le fichier moyen.if en utilisant -d qui signifie le répertoire.

-mon nom: la méthode la plus courante et la plus évidente pour rechercher un fichier est d'utiliser son argument -name.si vous n'êtes pas sûr de sa sensibilité à la casse, vous pouvez utiliser l'argument -iname

mv {} et enfin pour spécifier le répertoire cible puis déplacer les fichiers là-bas en utilisant l'argument mv {}


0
2018-04-01 16:54