Unix - copie le contenu d'un répertoire dans un autre [fermé]


90
Folder1/
    -fileA.txt
    -fileB.txt
    -fileC.txt

> mkdir Folder2/

> [copy command]

Et maintenant Folder2/ressemble à:

Folder2/
    -fileA.txt
    -fileB.txt
    -fileC.txt   

Comment y parvenir? J'ai essayé cp -r Folder1/ Folder2/mais j'ai fini avec:

Folder2/
    Folder1/
        -fileA.txt
        -fileB.txt
        -fileC.txt

Ce qui est proche mais pas exactement ce que je voulais.

Merci!

Réponses:


124

Essaye ça:

cp Folder1/* Folder2/

3
mais cela ne copiera pas les fichiers cachés, non?
Fabrizio Regini le

9
Correct. cp -Rwill, mais cela copiera récursivement, donc vous pouvez ou non vouloir l'utiliser. Vous pouvez faire cp Folder1/.* Folder2/pour ne copier que les fichiers cachés.
Geoff

1
Notez que cela échouera si vous utilisez "sudo" ou un équivalent et que le répertoire contient beaucoup de fichiers. Je reçoissudo: unable to execute /bin/cp: Argument list too long
Nathan Osman

notez que SCP a une syntaxe légèrement différente, voir ici: stackoverflow.com/a/26346339/1984636
sivi

Ne fais pas ça. Faites "cp -rT src dest" sur Linux, ou "cp -R src / dest" sur BSD.
xpusostomos

47

Assez simple, avec un *joker.

cp -r Folder1/* Folder2/

Mais selon votre exemple, la récursivité n'est pas nécessaire, donc ce qui suit suffira:

cp Folder1/* Folder2/

ÉDITER:

Ou sautez la mkdir Folder2partie et exécutez simplement:

cp -r Folder1 Folder2

Si ls | sort -k1.5 | head -8 > folder1alors comment faire ça?
Pooja

Vous venez de perdre tous vos fichiers cachés. Ne fais pas ça. Faites "cp -rT src dest" sur Linux, ou "cp -R src / dest" sur BSD.
xpusostomos

23

Pour faire une copie exacte, les autorisations, la propriété et tout utiliser "-a" avec "cp". "-r" copiera le contenu des fichiers mais ne gardera pas nécessairement les autres éléments identiques.

cp -av Source / * Dest /

(assurez-vous que Dest / existe en premier)

Si vous souhaitez effectuer une mise à jour répétée de l'un à l'autre ou vous assurer de copier également tous les fichiers dotfiles, rsyncest d'une grande aide:

rsync -av --delete Source / Dest /

Ceci est également "récupérable" dans la mesure où vous pouvez le redémarrer si vous l'abandonnez pendant la copie. J'aime "-v" car il vous permet de regarder ce qui se passe mais vous pouvez l'omettre.


1
à quoi ça sert -v?
HattrickNZ

verbeux, juste pour regarder ce qui se passe.
Brian White

1
Si vous avez beaucoup de fichiers, l' -voption peut prendre un certain temps. Si vous n'avez pas besoin de la sortie, utilisez -auniquement.
Eyal Levin

1
Vous devrez utiliser une connexion réseau assez lente pour que la copie soit ralentie par la sortie de texte. Et même dans ce cas, ce ne serait probablement que le retour de l'invite de commande, pas la copie elle-même.
Brian White

Vous avez perdu vos fichiers cachés. Faites "cp -rT src dest" sur Linux, ou "cp -R src / dest" sur BSD.
xpusostomos
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.