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

Hoe verplaats ik bestanden en mappen naar de bovenliggende map in Linux?

Hoe verplaats je in Linux (Ubuntu) alle bestanden en mappen naar de bovenliggende map?

Antwoorden (12)

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

Ik kwam hier omdat ik ook nieuw ben in dit onderwerp. Om een of andere reden werkte het bovenstaande niet voor mij. Wat ik deed om alle bestanden van een dir naar de bovenliggende dir te verplaatsen was:

cd to/the/dir
mv * ../
72
72
72
2009-12-27 17:29:43 +0000
find . -maxdepth 1 -exec mv {} .. \;

dit zal ook verborgen bestanden verplaatsen.

Je zult de melding krijgen:

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

wanneer het probeert om . (huidige directory) te verplaatsen, maar dat kan geen kwaad.

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

Typ dit in de commandoregel:

mv *.* ..

Dat verplaatst ALLE bestanden een niveau omhoog.

Het karakter * is een wildcard. Dus *.deb zal alle .deb bestanden verplaatsen, en Zeitgeist.* zal Zeitgeist.avi en Zeitgeist.srt een map omhoog verplaatsen, omdat, natuurlijk, .. de bovenliggende map aangeeft.

Om alles te verplaatsen, inclusief mappen, enz, gebruik je gewoon * in plaats van *.*

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

Eenvoudiger kan het niet:

mv * ../

Om ook verborgen bestanden te verplaatsen:

mv /path/subfolder/{.,}* /path/

mv is een commando om bestanden te verplaatsen, * betekent alle bestanden en mappen en ../ is het pad naar de bovenliggende map.

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

In bash kunt u* shopt -s dotglob** gebruiken om alle bestanden te matchen en ze eenvoudig te verplaatsen door

shopt -s dotglob; mv * ..

Dit is niet de beste oplossing omdat de instelling permanent is voor de shell totdat u hem wijzigt door

shopt -u dotglob

maar ik denk dat het goed is om te weten.

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

Een methode die geen fouten veroorzaakt en elke keer werkt:

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 {} .. \;

Ik gebruikte een variatie op het bovenstaande om alle bestanden van submappen naar de bovenliggende map te verplaatsen.

Ik had de gegevens per jaar in mappen gezet, maar door metadata te gebruiken kon ik ze allemaal in dezelfde map zetten, wat het beheer vergemakkelijkte.

bijv.

/data/2001/file_1
/data/2002/file_2
/data/2003/file_3
0
0
0
2016-04-11 04:38:26 +0000

Het is niet nodig om de directories te veranderen. Voeg gewoon * toe aan het einde van het pad:

mv /my/folder/child/* /my/folder/

Bovenstaande verplaatst alleen niet verborgen bestanden. Om alleen verborgen bestanden te verplaatsen gebruikt u .*

mv /my/folder/child/.* /my/folder/

Bovenstaande twee kunnen gecombineerd worden in één commando:

mv /my/folder/child/{.,}* /my/folder/

Zie ook Hoe verplaats ik alle bestanden inclusief verborgen bestanden naar de bovenliggende map 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

Ervan uitgaande dat al je verborgen bestanden beginnen met een punt gevolgd door een letter of een cijfer (wat zou moeten), zou je

mv * .[A-Za-z0-9]* ..

kunnen gebruiken. Het .[A-Za-z0-9]* gedeelte is om ervoor te zorgen dat je niet probeert om . of .. mee te verplaatsen, wat zou mislukken.

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

Het is eenvoudig om in Linux alle bestanden en mappen naar de bovenliggende map te verplaatsen.

Ga naar die map en gebruik dit commando:

mv * /the full path

Bijvoorbeeld, als je bestanden en mappen als volgt zijn:

/home/abcuser/test/1.txt 
                   2.txt
                   3.jpg
                   4.php
                   1folder
                   2folder

Ga naar die map via cd:

cd /home/abcuser/test
mv * /home/abcuser

Al uw bestanden en mappen worden verplaatst naar de map abcuser (bovenliggende map).

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

ga naar de subdirectory en voer het volgende commando uit om bestanden te kopiëren of te verplaatsen.

ex: a is de hoofddirectory en b is de subdirectory, we willen alle bestanden verplaatsen/kopiëren van b naar a (subdirectory naar de hoofddirectory).

cd b
cp * ..
mv * ..