Comment puis-je déplacer des fichiers et des répertoires vers le dossier parent dans Linux ?
Sous Linux (Ubuntu), comment déplacer tous les fichiers et répertoires vers le répertoire parent ?
Sous Linux (Ubuntu), comment déplacer tous les fichiers et répertoires vers le répertoire parent ?
Je suis venu ici parce que je suis également nouveau dans ce domaine. Pour une raison quelconque, ce qui précède n'a pas fait l'affaire pour moi. Ce que j'ai fait pour déplacer tous les fichiers d'un répertoire vers son répertoire parent était :
cd to/the/dir
mv * ../
Tapez ceci dans le shell :
mv *.* ..
Cela déplace TOUS les fichiers d'un niveau vers le haut.
Le caractère *
est un joker. Donc *.deb
va déplacer tous les fichiers .deb, et Zeitgeist.*
va déplacer Zeitgeist.avi et Zeitgeist.srt d'un dossier vers le haut, puisque, bien sûr, ..
indique le répertoire parent.
Pour tout déplacer, y compris les dossiers, etc., il suffit d'utiliser *
au lieu de *.*
Cela ne peut pas être plus simple que :
mv * ../
Pour déplacer également les fichiers cachés :
mv /path/subfolder/{.,}* /path/
mv
est une commande pour déplacer des fichiers, *
signifie tous les fichiers et dossiers et ../
est le chemin d'accès au répertoire parent.
Dans bash vous pouvez utiliser* shopt -s dotglob** pour faire correspondre tous les fichiers et les déplacer simplement de
shopt -s dotglob; mv * ..
Ce n'est pas la meilleure solution puisque le réglage est permanent pour le shell jusqu'à ce que vous le changiez de
shopt -u dotglob
mais je pense qu'il est bon de le savoir.
Une méthode qui ne provoque aucune erreur et qui fonctionne à chaque fois :
ls -1A . | while read -r file
do
mv "./${file}" ..
done
```.
find . -maxdepth 2 -type f -exec mv {} .. \;
J'ai utilisé une variante de ce qui précède pour déplacer tous les fichiers des sous-dossiers vers le parent.
J'avais des données dans des dossiers par année, mais en utilisant des métadonnées, j'ai pu les avoir toutes dans le même dossier, ce qui a rendu la gestion plus facile.
ex.
/data/2001/file_1
/data/2002/file_2
/data/2003/file_3
Il n'est pas nécessaire de changer d'annuaire. Il suffit d'inclure * à la fin du chemin :
mv /my/folder/child/* /my/folder/
Au-dessus ne se déplace que les fichiers non cachés. Pour déplacer uniquement des fichiers cachés, utilisez la commande .*
mv /my/folder/child/.* /my/folder/
Les deux commandes ci-dessus peuvent être combinées en une seule :
mv /my/folder/child/{.,}* /my/folder/
Voir aussi Comment déplacer tous les fichiers, y compris les fichiers cachés, dans le répertoire parent via *
En supposant que tous vos fichiers cachés commencent par un point suivi d'une lettre ou d'un chiffre (ce qui devrait être le cas), vous pourriez utiliser
mv * .[A-Za-z0-9]* ..
La partie .[A-Za-z0-9]*
est pour s'assurer que vous n'essayez pas de déplacer .
ou ..
le long, ce qui échouerait.
Il est simple de déplacer tous les fichiers et dossiers vers le répertoire parent dans Linux.
Allez dans ce dossier et utilisez cette commande :
mv * /the full path
Par exemple, si vos fichiers et dossiers sont les suivants
/home/abcuser/test/1.txt
2.txt
3.jpg
4.php
1folder
2folder
Allez dans ce dossier via un cd :
cd /home/abcuser/test
mv * /home/abcuser
Tous vos fichiers et dossiers seront déplacés vers le dossier abcuser (répertoire parent).
passer dans le sous-répertoire et exécuter la commande suivante pour copier ou déplacer des fichiers.
ex : a est le répertoire parent et b est le sous-répertoire, nous voulons déplacer/copier tous les fichiers de b vers a (sous-répertoire vers le répertoire parent).
cd b
cp * ..
mv * ..