Pour ce faire, ouvrez un terminal et exécutez cette commande:
mv -v ~/Downloads/* ~/Videos/
Il déplacera tous les fichiers et dossiers du dossier Téléchargements vers le dossier Vidéos.
Pour déplacer tous les fichiers, mais pas les dossiers:
Toutefois, si vous souhaitez déplacer tous les fichiers (mais pas les dossiers) du dossier Téléchargements vers le dossier Vidéos, 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 Téléchargements, mais pas les fichiers contenus dans les dossiers du dossier de téléchargement, utilisez cette commande:
find ~/Downloads/ -maxdepth 1 -type f -print0 | xargs -0 mv -t ~/Videos
Ici, l' -maxdepth
option spécifie à quelle profondeur find doit essayer,
1
c'est-à-dire uniquement le répertoire spécifié dans la commande find. Vous pouvez essayer d'utiliser 2
, 3
également pour tester.
Consultez la page de manuel de recherche Ubuntu pour une explication détaillée.
Solution
La commande trouvera tous les fichiers ordinaires sous
/src/dir
(y compris tous les sous-répertoires) et les déplacera vers l’/dst/dir
utilisation de la commandemv
. Il suffit de remplacer les répertoires par les vôtres. Les fichiers portant le même nom seront renommés automatiquement.Sélection des fichiers à déplacer
Si vous souhaitez déplacer uniquement des fichiers MP3, ajoutez l'
-iname "*.mp3"
option à lafind
commande après-type f
.Comparaison avec la réponse de c0dev
Seule la deuxième commande de la réponse de c0dev répond à la question. Vous trouverez ci-dessous une comparaison avec cette réponse. Les points 3. et 4. peuvent être résolus dans l’autre réponse de la même manière qu’ici.
mv
la solution avec-exec +
n'a pas besoin d'appeler une commande supplémentaire telle quexargs
ouparallel
et de remettre les noms de fichiers deux fois.--backup=numbered
. Malheureusement, ces sauvegardes avec suffixe~3~
seront cachées dans la plupart des fichiers gérés par défaut. Malheureusement,mv
ne permet pas de changer le suffixe, mais il pourrait facilement être post-traité par des commandes supplémentaires. Ceci est une extension GNU.-print0
-exec command {} +
normes IEEE 1003.1 (POSIX), ISO / IEC 9945 et les spécifications Single UNIX Specification. Ainsi, il devrait être plus portable. Voir IEEE Standard 1003.1, édition 2004 , IEEE Standard 1003.1, édition 2013 et 0000243: Ajoutez -print0 à "find" . Quoi qu'il en soit, le-t
commutateur requismv
est une extension GNU, de sorte que la totalité de la commande n'est pas portable entre les systèmes POSIX.Note: Dans le cas
find
serait en mesure de produire des chemins commençant par-
(je ne sais pas d'une telle mise en œuvrefind
au moment.) La{}
doit être précédée par l'indicateur de fin de choix:--
.la source
{}
soit le dernier argument. Corrigée.Malheureusement, je n'ai pas assez de réputation pour commenter cette solution. Cependant, je voulais mettre les autres en garde contre un problème que j'ai rencontré. C'est assez amateur; Cependant, lorsque vous faites plusieurs choses, cela ne vous vient peut-être pas à l’esprit. Espérons que cela aidera les autres.
Problème
Des variantes du message suivant ont été fournies après le lancement de la commande. La commande crée ensuite plusieurs fichiers.
Cause
Le
/src
est un parent de la/dst
(par exemple/src/../dst/
).Solution
Bien qu'il y ait peut-être une meilleure solution, j'ai simplement déplacé les fichiers dans un répertoire temporaire situé en dehors de mon
/src
ordinateur, puis j'ai réexécuté la commande pour les replacer dans le/src/../dst
répertoire dans lequel je voulais qu'ils se retrouvent.la source
Mon one-liner - cela fonctionne sur les Mac, mais devrait également le faire sur n'importe quel * nix. Commencez à partir du répertoire parent.
La première partie déplace tout de tous les sous-dossiers vers le dossier actuel à partir duquel vous commencez la commande; la deuxième partie vérifie si les sous-répertoires sont vides (ils devraient maintenant :-) et les supprime afin que vous obteniez tout ici sans sous-répertoires.
la source
-not
opérateur n'est pas standard, votre commande est donc moins portable que les autres.Ouvrez terminal, cd dans votre dossier de dossiers avec fichiers et exécutez-le
find . -mindepth 2 -type f -print -exec mv {} . \;
pour déplacer tous les fichiers de ces sous-répertoires vers le répertoire actuel.la source