2009-12-27 17:25:21 +0000 2009-12-27 17:25:21 +0000
84
84

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 ?

Réponses (12)

96
96
96
2013-01-26 20:20:56 +0000

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 * ../
72
72
72
2009-12-27 17:29:43 +0000
find . -maxdepth 1 -exec mv {} .. \;

cela permettra de déplacer les fichiers cachés également.

Vous aurez le message :

mv: cannot move `.' to `../.': Device or resource busy

lorsqu'il essaie de déplacer . (répertoire courant) mais cela ne causera aucun dommage.

10
10
10
2009-12-27 17:27:56 +0000

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 *.*

6
6
6
2014-07-16 18:50:24 +0000

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.

2
2
2
2011-01-25 21:33:46 +0000

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.

1
1
1
2012-07-25 20:15:46 +0000

Une méthode qui ne provoque aucune erreur et qui fonctionne à chaque fois :

ls -1A . | while read -r file                                                    
do                                                                                  
    mv "./${file}" ..                                                            
done
```.
1
1
1
2014-07-16 18:37:18 +0000
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
0
0
0
2016-04-11 04:38:26 +0000

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 *

0
0
0
2018-12-13 14:22:48 +0000
find -type f|while read line; do mv $line ${line##*/}; done
0
0
0
2009-12-27 17:48:32 +0000

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.

0
0
0
2011-11-03 11:39:25 +0000

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).

-1
-1
-1
2016-05-20 06:32:28 +0000

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 * ..