Vraag Hoe verplaats ik alle bestanden van de ene naar de andere map via de opdrachtregel?


Ik zou graag willen weten hoe ik alle bestanden van een map naar een andere map kan verplaatsen met een opdrachtregel.

Laten we zeggen dat ik in de map Downloads zit en dat er 100 bestanden zijn die ik naar mijn map Video's zou willen verplaatsen, zonder alle bestandsnamen te hoeven schrijven.


167
2017-08-06 15:14


oorsprong


U vraagt ​​naar verhuizen files maar mensen laten je zien hoe je beweegt, niet alleen files maar foldersook. Is dat goed? - Askar


antwoorden:


Open een terminal en voer deze opdracht uit:

mv  -v ~/Downloads/* ~/Videos/

Het verplaatst alle bestanden en mappen van de map Downloads naar de map Video's.


Om alle bestanden te verplaatsen, maar geen mappen: 

Als u geïnteresseerd bent in het verplaatsen van alle bestanden (maar niet in mappen) van de map Downloads naar de map Video's, gebruikt u deze opdracht

find ~/Downloads/ -type f -print0 | xargs -0 mv -t ~/Videos

Om alleen bestanden te verplaatsen vanuit de downloadmappen, maar niet vanuit submappen:

Als u alle bestanden uit de map Downloads wilt verplaatsen, maar geen bestanden in mappen in de map Download, gebruikt u deze opdracht:

find ~/Downloads/ -maxdepth 1 -type f -print0 | xargs -0 mv -t ~/Videos

hier, -maxdepth optie geeft aan hoe diep zoeken moet zijn, 1 betekent alleen de map die is opgegeven in de opdracht find. U kunt proberen te gebruiken 2, 3 ook om te testen.

Zie de Ubuntu zoek manpage voor een gedetailleerde uitleg


234
2017-08-06 15:18



je kunt alleen mv gebruiken om een ​​hele map naar een andere map te verplaatsen: map mv ~ / Documents - JohnMerlino
FYI Ik geloof dat je eerste commando ("mv -v ~ / Downloads / * ~ / Videos /") puntbestanden niet zal verplaatsen. - Mark Doliner
Ja, het zal de .files niet verplaatsen - Anwar
Nb. jouw -print0 | xargs -0 mv -t ~/Videos kan efficiënter worden gedaan met -exec mv -t ~/Videos \{\} \+ :-) - artfulrobot
Ja dat is waar. Ik was novice toen ik de vraag beantwoordde - Anwar


mv ~/Downloads/* ~/Videos

Het verplaatst alle bestanden inclusief submappen in de map die u wilt mv. Als je wilt cp (kopie) of rm (verwijderen) u hebt de -r (recursieve) optie om submappen op te nemen.


17
2017-12-08 03:24



Mijn mv-opdracht heeft geen -R-optie (Ubuntu 14.04). - Mark Doliner
@MarkDoliner, ja, mv heeft geen recursieve optie nodig om submappen op te nemen. Men kan het ook gebruiken voor het hernoemen. - AliNâ
Ik had geen * nodig. Hetzelfde gebeurde zonder de ster te gebruiken. - MycrofD
De ~ / in de prefix van de mapnamen werkt niet altijd (werkt niet op bash en git tenminste) - Krish Munot
Deze oplossing geeft een foutmelding als de bronmap leeg is. - Pierre Thibault


Het is mogelijk door te gebruiken rsync, bijvoorbeeld:

rsync -vau --remove-source-files src/ dst/

waar:

-v, --verbose: Vergroot de breedsprakigheid.

-a, --archive: Archiefmodus; is gelijk aan -rlptgoD (Nee -H, -A, -X).

-u, --update: Bestanden overslaan die nieuwer zijn op de ontvanger.

--remove-source-files        Dit vertelt rsync om de bestanden aan de zendzijde (dat wil zeggen niet-mappen) te verwijderen die deel uitmaken van de overdracht en die met succes zijn gedupliceerd aan de ontvangende kant.

Als je over root-rechten, prefix met hebt sudo om mogelijke toestemmingsproblemen te overschrijven.


5
2018-06-06 15:08



WAARSCHUWING! de optie --delete-after werkt niet zoals u zou verwachten. Het verwijdert het niet bron bestanden na succesvolle kopie ... HET VERWIJDERT ALLE RESTERENDE / ANDERE BESTANDEN IN DE BESTEMMING. (zoals @kenorb opmerkte ... maar ik las niet zorgvuldig genoeg! DOH) - Jay Marm


Gebruik

mv -v ~/rootfolder/branch/* ~/rootfolder

Ik hoop dat dit helpt. Omdat ik dezelfde pijn had en veel tijd verspilde aan het herstellen van mijn fout.


2
2018-01-25 23:06





Voor het eenvoudige geval:

mv ~/Downloads/* ~/Videos

Als u ook puntbestanden wilt verplaatsen, stelt u de dotglob shell optie.

shopt -s dotglob
mv ~/Downloads/* ~/Videos

Hierdoor blijft de shell-optieset over.

Gebruik voor eenmalig gebruik van dotglob de opdrachten in een submap:

(shopt -s dotglob; mv ~/Downloads/* ~/Videos)

2
2018-01-22 10:16





  1. Ga naar de opdrachtregel en ga naar de map waar je het naartoe wilt verplaatsen cd folderNamehere
  2. Type pwd. Hiermee wordt de map afgedrukt die u ook wilt verplaatsen.
  3. Verander dan naar de map waar alle bestanden zich bevinden cd folderNamehere
  4. Nu om alle bestanden te verplaatsen mv *.* typeAnswerFromStep2here

Dat zal alle bestanden van die map naar de andere verplaatsen.


1
2017-09-12 12:07



Dit komt niet overeen met bestanden zonder enige extensie. bijvoorbeeld als een map de bestanden heeft: foo.txt, bar. en bar beide bar. en bar zal niet worden verplaatst. Gebruik makend van * in plaats van *.* zorgt daar voor. Maar in beide gevallen bevatten verborgen bestanden zoals: .foobar zal niet worden verplaatst. - Dan


Om een ​​map met of zonder inhoud naar de nieuwe naam te verplaatsen, net zoals u de mv commando om een ​​bestand te hernoemen:

mv -T dir1 dir2

waar:

  • -T behandelt de bestemming als een normaal bestand
  • dir1 is de originele naam van de map
  • dir2 is de nieuwe naam van de map

NB: dir2 hoeft niet te bestaan.

Ik hoop dat dit iemand veel tijd bespaart, als een noob, hiervoor zou ik een map maken met de nieuwe naam en dan de inhoud van de map verplaatsen naar de eerder aangemaakte map.

Gebruik voor submappen

Deze opdracht is handig wanneer veel bestanden zijn opgeslagen in een submap van de doeldirectory, d.w.z. Downloads/mp4. In dit voorbeeld, hardlopen mv -T Downloads/mp4 Videos zal resulteren in mp4 submap is verwijderd en alle bestanden die zich binnenin bevinden, worden verplaatst naar de map Video's.


0
2017-12-09 07:33



+1 omdat getest werken in Xubuntu 14.04. Ik heb een voorbeeld in dit antwoord toegevoegd om aan te tonen dat deze opdracht de oorzaak is dir1 verwijderd worden. Afgezien van deze voorzorgsmaatregel heeft dit antwoord iets goeds opgemerkt voor dagelijks gebruik. - clearkimura
"Een map met of zonder inhoud naar de nieuwe naam verplaatsen" Hoe kunt u een map verplaatsen ... naar een naam? Dat is niet logisch. "-T behandelt de bestemming als een normaal bestand" Hoe kan een bestemming een bestand zijn? Bedoel je directory? - Monica Heddneck
Het is net als het hernoemen van een bestand naar zijn nieuwe naam zoals je zou doen met zoiets mv fileA fileB maar de -T vlag behandelt in dit geval de bestemming / map als een bestand en geeft deze een nieuwe naam. - Feyisayo Sonubi


probeer het

find ~/Desktop -type f -iname  "*.mp4" -exec mv {} ~/Videos \;

-type met het argument -type kun je het type bestand opgeven.op deze verklaring is dit het gemiddelde bestand.als gebruik van -d dat betekent map.

-ik noem: de meest gebruikelijke en voor de hand liggende methode om naar een bestand te zoeken is het gebruik van het -name-argument. Als je niet zeker bent over de hoofdlettergevoeligheid, kun je gebruik maken van -iname argument

mv {} en ten slotte om de doeldirectory te specificeren en vervolgens de bestanden daar naartoe te verplaatsen met behulp van het mv {} argument


0
2018-04-01 16:54