J'aimerais savoir comment déplacer tous les fichiers d'un dossier vers un autre avec une ligne de commande.
Disons que je suis dans mon dossier Téléchargements et il y a 100 fichiers que je voudrais déplacer dans mon dossier Vidéos, sans avoir à écrire le nom de tous les fichiers.
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:
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'option -maxdepth
spécifie la profondeur de la recherche, 1
signifie uniquement le répertoire spécifié dans la commande find. Vous pouvez également utiliser 2
, 3
pour tester.
Voir Ubuntu trouver la page de manuel pour une explication détaillée
mv ~/Downloads/* ~/Videos
Tous les fichiers, y compris les sous-dossiers, seront déplacés dans le répertoire de votre choix vers mv
name__. Si vous souhaitez cp
(copier) ou rm
(supprimer), vous aurez besoin de l'option -r
(récursive) pour inclure les sous-dossiers.
C'est possible en utilisant rsync
name__, par exemple:
rsync -vau --remove-source-files src/ dst/
où:
-v
,--verbose
: augmentez la verbosité.
-a
,--archive
: mode d'archivage; est égal à-rlptgoD
(no-H
,-A
,-X
).
-u
,--update
: Ignore les fichiers les plus récents sur le récepteur.
--remove-source-files
Ceci indiquersync
pour supprimer les fichiers du côté envoi (signifiant non-répertoires) faisant partie du transfert et ayant été dupliqué avec succès du côté destinataire.
Si vous avez des privilèges root, préfixez Sudo
pour remplacer les problèmes d’autorisation potentiels.
Pour le cas simple:
mv ~/Downloads/* ~/Videos
Si vous souhaitez également déplacer des fichiers point (masqués), définissez l'option dotglob Shell.
shopt -s dotglob
mv ~/Downloads/* ~/Videos
Cela laisse le jeu d'options Shell.
Pour une utilisation ponctuelle de dotglob, exécutez les commandes dans un sous-shell:
(shopt -s dotglob; mv ~/Downloads/* ~/Videos)
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.
Pour déplacer un répertoire avec ou sans contenu vers son nouveau nom, exactement comme vous utiliseriez la commande mv
pour renommer un fichier:
mv -T dir1 dir2
où:
-T
traite la destination comme un fichier normaldir1
est le nom d'origine du répertoiredir2
est le nouveau nom du répertoireNB: dir2
ne doit pas exister.
J'espère que cela économisera beaucoup de temps à quelqu'un, auparavant, 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.
tiliser 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, à savoir Downloads/mp4
. Dans cet exemple, si vous exécutez mv -T Downloads/mp4 Videos
, le sous-dossier mp4
sera supprimé et tous les fichiers qu'il contient seront déplacés vers le dossier Vidéos.
cd folderNamehere
.pwd
. Cela imprimera aussi le répertoire que vous voulez déplacer.cd folderNamehere
mv *.* typeAnswerFromStep2here
Cela déplacera tous les fichiers de ce répertoire à l’autre.
mv source_path/* destination_path/
dans ce cas, vous devez mettre les barres obliques et *
après le chemin source afin que les fichiers soient placés dans chemin source_path au lieu du répertoire source complet.
Exemple: mv /home/username/test/* /home/username/test2/
La commande ci-dessus déplace tous les fichiers (sauf s'ils sont cachés) du répertoire source vers le répertoire de destination.
l'essayer
find ~/Desktop -type f -iname "*.mp4" -exec mv {} ~/Videos \;
- type avec l'argument -type, vous pouvez spécifier le type fichier.on cette instruction qui est la moyenne file.if en utilisant -d qui signifie répertoire.
- iname: La méthode la plus courante et la plus évidente pour rechercher un fichier utilise son argument -name. Si vous n'êtes pas sûr de sa sensibilité à la casse, vous pouvez utiliser l'argument -iname.
mv {} et enfin spécifier le répertoire cible, puis y déplacer les fichiers en utilisant l'argument mv {}