Réponses:
trouver . -maxdepth 1 -exec mv {} .. \;
cela déplacera également les fichiers cachés.
Vous recevrez le message:
mv: impossible de déplacer `. ' à «../»: périphérique ou ressource occupé
quand il essaie de se déplacer .
(répertoire actuel) mais que cela ne causera aucun dommage.
-maxdepth 1
pour être sûr.
Je suis venu ici parce que je suis aussi novice 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 * ../
(cd ${ANDROID_NDK_HOME}/android-ndk-r14b/ && mv * ../)
Tapez ceci dans le shell:
mv *.* ..
Cela déplace TOUS les fichiers d'un niveau.
Le personnage *
est un joker. Ainsi *.deb
, tous les fichiers .deb Zeitgeist.*
seront déplacés , ainsi que les dossiers Zeitgeist.avi et Zeitgeist.srt vers le haut, puisque, bien sûr, ..
indique le répertoire parent.
Pour tout déplacer, y compris les dossiers, etc., utilisez simplement *
au lieu de*.*
*
ne *.*
pas inclure de répertoires
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, *
désigne tous les fichiers et dossiers et ../
constitue le chemin d'accès au répertoire parent.
En bash, vous pouvez utiliser shopt -s dotglob pour faire correspondre * tous les fichiers et les déplacer simplement en
shopt -s dotglob; mv * ..
Ce n'est pas la meilleure solution car le paramètre est permanent pour le shell jusqu'à ce que vous le changiez par
shopt -u dotglob
mais je pense que c'est bon à savoir.
(shopt -s dotglob && mv * ..)
. De cette façon, l’option n’est locale que dans ce sous-shell.
Une méthode qui ne cause aucune erreur et 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 ci-dessus pour déplacer tous les fichiers des sous-dossiers dans le parent.
J'avais des données dans des dossiers par année, mais grâce aux métadonnées, je pouvais toutes les avoir dans le même dossier, ce qui facilitait la gestion.
par exemple.
/data/2001/file_1
/data/2002/file_2
/data/2003/file_3
Il est simple de déplacer tous les fichiers et dossiers vers le répertoire parent sous 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 cd:
cd /home/abcuser/test
mv * /home/abcuser
Tous vos fichiers et dossiers seront déplacés vers le dossier abcuser (répertoire parent).
/the full path
ne fonctionne pas sous Linux, vous devez échapper des espaces avec /the\ full\ path
.
Il n'est pas nécessaire de changer de répertoire. Il suffit d'inclure * à la fin du chemin:
mv /my/folder/child/* /my/folder/
Ci-dessus ne déplace que les fichiers non cachés. Pour déplacer uniquement les fichiers cachés, utilisez. *
mv /my/folder/child/.* /my/folder/
Au-dessus de deux peuvent être combinés en une seule commande:
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 *
passez au sous-répertoire et exécutez 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 dans le répertoire parent).
cd b
cp * ..
mv * ..