Vraag Hoe kan ik de inhoud van een map kopiëren naar een andere map in een andere map met behulp van een terminal?


Ik probeer de inhoud van een map naar een andere map in een andere map te kopiëren via de terminal.

Zou iemand mij een voorbeeld kunnen geven van de syntaxis van de commandoregel die nodig is om dit te bereiken?


529
2017-12-11 01:19


oorsprong


cyberciti.biz/faq/copy-folder-linux-command-line heeft meer duidelijke informatie. - Dilip Rajkumar


antwoorden:


U kunt de inhoud van een map kopiëren /source naar een andere bestaande map /dest met het commando

cp -a /source/. /dest/

De -a optie is een verbeterde recursieve optie, die alle bestandskenmerken behoudt en ook symlinks bewaart.

De . aan het einde van het bronpad is een specifiek cp syntaxis waarmee alle bestanden en mappen kunnen worden gekopieerd, inclusief verborgen bestanden.


799
2017-12-11 12:01



Goed antwoord. Ik zal een echt voorbeeld schrijven voor het geval iemand problemen heeft met dit commando: sudo cp -a / var / www / opencart /. / Var / www / opencart_local / - pablofiumara
@enzotib Ik probeer dit commando te gebruiken om de inhoud van "Downloads / textext" te kopiëren naar "~ / .config / inkscape / extensions /." Met behulp van uw opdracht typ ik "cp-a / Downloads / textext /. /~/.config/inkscape/extensions/." maar dit werkt niet - Funzies
@Funzies: waarschijnlijk zou je commando: cp -a ~/Downloads/textext/. ~/.config/inkscape/extensions/ - enzotib
Toevoegen -p vlag om de bestandsrechten en tijdstempels te behouden. cp -ap /var/www/original.com/images/. /var/www/new.com/images/ - Dylan Valade
@DylanValade: -a houdt al in --preserve=all, dat is breder dan -p = --preserve=mode,ownership,timestamps. - enzotib


Een alternatief is rsync

rsync -r source/ destination

De voordelen van rsync zijn:

  1. Na de eerste synchronisatie worden alleen de bestanden gekopieerd die zijn gewijzigd.

  2. Je kunt het via een netwerk gebruiken, handig voor bestanden in $ HOME, vooral configuratiebestanden.


97
2017-12-11 03:59



Ik denk dat je de asterisk niet nodig hebt. rsync -r source/ destination zou genoeg moeten zijn, niet? - Joschua
Deze is meer geschikt: 'rsync -rtvp source / * destination' - shridutt kothari
-r werkt niet voor verborgen bestanden / mappen - Nam G VU
Hiermee worden verborgen bestanden niet gekopieerd, omdat bash * alleen wordt uitgebreid naar niet-verborgen bestanden. De oplossing van @Joschua is veiliger. - sauerburger
rsync kopieert de volledige map, inclusief verborgen bestanden, als u de volg / zonder een * dus gebruikt rync source/ dest Het is duidelijk dat mensen het rsync-commando moeten aanpassen aan hun wensen. - Panther


Laten we zeggen dat je een map hebt genaamd map1 in uw ~, binnen map1 is 1 bestand genoemd file1 en 2 mappen genoemd sub1 en sub2 elk met andere bestanden en mappen erin.

Om alle inhoud van te kopiëren ~/folder1 naar ~/new_folder1 je zou gebruiken

cp -r ~/folder1/. ~/new_folder1

new_folder1 zou dan alle bestanden en mappen bevatten folder1.

cp is het commando om te kopiëren met een terminal, -r maakt het recursief (dus huidige map + verdere mappen binnen huidige) ~/folder1 is de oorspronkelijke map, ~/new_folder1 is de bestemmingsmap voor de bestanden / mappen binnen de oorsprong.


56
2017-12-11 01:23



het vangt geen verborgen bestanden op - Portablejim
Bedankt Bruno! Het heeft me geholpen de syntaxis te begrijpen, hoewel ik het een beetje moest veranderen (het ~ -teken verwijderen). Misschien omdat de doelmap zich in / opt bevond en zich in een ander bestandssysteem bevindt. En bedankt Portablejim om het verborgen dossier ding te herinneren! - pandisvezia
De latere periode is belangrijk. Zonder dit, kan het soms een nieuwe subdirectory maken ~/new_folder1/folder1 in plaats van de inhoud te kopiëren. - wisbucky
Waarom niet cp -r ~/folder1/* ~/new_folder1 - Alex78191
@ Alex78191 [root@ home]# mkdir food [root@ home]# cd food/ [root@ food]# mkdir .fruit [root@ food]# mkdir veggies [root@ food]# touch veggies/carrots [root@ food]# touch .fruit/apple [root@ food]# ls * carrots [root@ food]# - Bruno Pereira


Controleer dit http://www.cyberciti.biz/faq/copy-folder-linux-command-line/ voor meer informatie over het kopiëren van de map. Ik hoop dat dit helpt.

cp Command

cp is een Linux-opdracht voor het kopiëren van bestanden en mappen. De syntaxis is als volgt:

cp source destination
cp dir1 dir2
cp -option  source destination
cp -option1 -option2  source destination

In dit voorbeeld kopiëren /home/vivek/letters map en alle bijbehorende bestanden naar /usb/backup directory:

cp -avr /home/vivek/letters /usb/backup

Waar,

-a : Bewaar de opgegeven kenmerken, zoals map, bestandsmodus, eigendom, tijdstempels, indien mogelijk extra attributen: context, links, xattr, alles.

-v : Leg uit wat er wordt gedaan.

-r : Kopieer mappen recursief. Voorbeeld

Kopieer een map met de naam / tmp / conf naar / tmp / backup:

$ cp -avr /tmp/conf/ /tmp/backup

13
2017-11-25 05:53



Dit is niet wat de vraag stelt. - cybermonkey
(Het gebruik van -r met -a is overbodig; op gnu cp -a is hetzelfde als "-dr --preserve = all") - cristoper


Als er twee mappen zijn: (met schrijfrechten)

drwxr-xr-x 4 vimal vimal  4096 Sep  9 12:17 .
drwxr-xr-x 3 root  root   4096 Aug 18 14:35 ..
drwxrwxrwx 6 vimal vimal  4096 Sep  9 12:15 DATA
drwxrwxrwx 7 vimal vimal  4096 Sep  9 12:15 PORTAL

Als u zich in de map met de naam PORTAL bevindt, waar u alle inhoud van een andere map wilt kopiëren, zegt u DATA op hetzelfde niveau dan zal je doen

vimal@vimal-D3H:/var/www/html/PORTAL$ cp -a ../DATA/. .

Je moet 2 stippen opmerken. In de laatste punt staat de kopie hier in de huidige map

en

een volgende / DATA /. zegt dat alle inhoud in de DATA-map moet worden gekopieerd, en niet de DATA-map zelf.

Als u dit nalopen verwijdert "." van / DATA /

dan wordt de hele DATA-map gekopieerd in PORTAL (van waar je mee omgaat).


2
2017-09-09 10:39