Question Comment puis-je copier le contenu d'un dossier dans un autre dossier dans un répertoire différent à l'aide du terminal?


J'essaie de copier le contenu d'un dossier dans un autre dossier dans un répertoire différent à l'aide du terminal.

Quelqu'un pourrait-il me fournir un exemple de la syntaxe de ligne de commande requise pour y parvenir?


529
2017-12-11 01:19


origine


cyberciti.biz/faq/copy-folder-linux-command-line a des informations plus claires. - Dilip Rajkumar


Réponses:


Vous pouvez copier le contenu d'un dossier /source vers un autre dossier existant /dest avec la commande

cp -a /source/. /dest/

le -a option est une option récursive améliorée, qui préserve tous les attributs de fichier et préserve également les liens symboliques.

le . à la fin du chemin source est un spécifique cp syntaxe permettant de copier tous les fichiers et dossiers, y compris ceux cachés.


799
2017-12-11 12:01



Très bonne réponse. Je vais écrire un exemple réel au cas où quelqu'un aurait des problèmes avec cette commande: sudo cp -a / var / www / opencart /. / var / www / opencart_local / - pablofiumara
@enzotib J'essaie d'utiliser cette commande pour copier le contenu de "Downloads / textext" dans "~ / .config / inkscape / extensions /". En utilisant votre commande, je tape "cp -a / Downloads / textext /. /~/.config/inkscape/extensions/". mais cela ne fonctionne pas - Funzies
@Funzies: votre commande devrait probablement être: cp -a ~/Downloads/textext/. ~/.config/inkscape/extensions/ - enzotib
Ajouter -p flag as afin de préserver les autorisations de fichier et les horodatages. cp -ap /var/www/original.com/images/. /var/www/new.com/images/ - Dylan Valade
@ DylanValade: -a implique déjà --preserve=all, qui est plus large que -p = --preserve=mode,ownership,timestamps. - enzotib


Un remplaçant est rsync

rsync -r source/ destination

Les avantages de rsync sont:

  1. Après la synchronisation initiale, il ne copiera que les fichiers modifiés.

  2. Vous pouvez l'utiliser sur un réseau, pratique pour les fichiers dans $ HOME, en particulier les fichiers de configuration.


97
2017-12-11 03:59



Je pense que vous n'avez pas besoin de l'astérisque. rsync -r source/ destination devrait être suffisant, non? - Joschua
Celui-ci est plus approprié: 'rsync -rtvp source / * destination' - shridutt kothari
-r ne fonctionne pas pour les fichiers / dossiers cachés - Nam G VU
Cela ne copiera pas les fichiers cachés, car bash se développe uniquement * vers un fichier non caché. La solution de @Joschua est plus sûre. - sauerburger
rsync va copier tout le répertoire, y compris les fichiers cachés, si vous utilisez le trailing / without a * so rync source/ dest De toute évidence, les utilisateurs devront personnaliser la commande rsync pour fonctionner comme ils le souhaitent. - Panther


Disons que vous avez un dossier appelé dossier1 dans ton ~, à l'intérieur dossier1 est 1 fichier appelé fichier1 et 2 dossiers appelés sub1 et sub2 chacun avec d'autres fichiers et dossiers à l'intérieur d'eux.

Pour copier tout le contenu de ~/folder1 à ~/new_folder1 vous utiliseriez

cp -r ~/folder1/. ~/new_folder1

new_folder1 contiendrait alors tous les fichiers et dossiers de folder1.

cp est la commande pour copier en utilisant un terminal, -r le rend récursif (donc, répertoire courant + autres répertoires à l'intérieur du courant) ~/folder1 est le dossier d'origine, ~/new_folder1 est le dossier de destination des fichiers / dossiers à l’origine.


56
2017-12-11 01:23



il n'attrape pas les fichiers cachés - Portablejim
Merci Bruno! Cela m'a aidé à comprendre la syntaxe, même si je devais la changer un peu (supprimer le signe ~). Peut-être parce que le dossier de destination était dans / opt, qui réside dans un autre système de fichiers. Et merci à Portablejim de se souvenir de la chose cachée! - pandisvezia
La période de suivi est importante. Sans cela, il peut parfois créer un nouveau sous-répertoire ~/new_folder1/folder1 au lieu de copier le contenu. - wisbucky
Pourquoi pas 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


Vérifie ça http://www.cyberciti.biz/faq/copy-folder-linux-command-line/ pour plus d'informations sur la copie du dossier. J'espère que cela t'aides.

cp Command

cp est une commande Linux pour copier des fichiers et des répertoires. La syntaxe est la suivante:

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

Dans cet exemple, copier /home/vivek/letters dossier et tous ses fichiers à /usb/backup annuaire:

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

Où,

-a : Conservez les attributs spécifiés tels que répertoire, mode fichier, propriété, horodatage, si possible attributs supplémentaires: contexte, liens, xattr, tous.

-v : Expliquez ce qui se fait.

-r : Copier les répertoires de manière récursive Exemple

Copiez un dossier nommé / tmp / conf vers / tmp / backup:

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

13
2017-11-25 05:53



Ce n'est pas ce que la question demande. - cybermonkey
(Utiliser -r avec -a est redondant; sous gnu cp -a est identique à "-dr --preserve = all") - cristoper


S'il y a deux dossiers: (avec permission d'écriture)

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

Si vous êtes dans le dossier appelé PORTAL où vous voulez copier tout le contenu d'un autre dossier, dites DATA au même niveau. alors tu feras

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

Vous devez remarquer 2 points. Dernier point dit copie ici dans le dossier présent

et

un suivant / DATA /. dit que tous les CONTENTS contenus dans le dossier DATA doivent être copiés, et non le dossier DATA lui-même.

Si vous supprimez cette fin "." de / DATA /

Le dossier DATA complet sera alors copié dans PORTAL (à partir duquel vous copiez).


2
2017-09-09 10:39