Unix - 将一个目录的内容复制到另一个目录

JDS*_*JDS 84 unix directory copy file

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

> mkdir Folder2/

> [copy command]
Run Code Online (Sandbox Code Playgroud)

现在Folder2/看起来像:

Folder2/
    -fileA.txt
    -fileB.txt
    -fileC.txt   
Run Code Online (Sandbox Code Playgroud)

如何实现这一目标?我试过了,cp -r Folder1/ Folder2/但我最终得到了:

Folder2/
    Folder1/
        -fileA.txt
        -fileB.txt
        -fileC.txt
Run Code Online (Sandbox Code Playgroud)

哪个很接近但不完全是我想要的.

谢谢!

Geo*_*off 117

试试这个:

cp Folder1/* Folder2/
Run Code Online (Sandbox Code Playgroud)

  • 正确.`cp -R`会,但是会以递归方式复制,所以你可能会也可能不想使用它.您可以执行`cp Folder1 /.*Folder2 /`来仅复制隐藏文件. (9认同)
  • 但这不会复制隐藏文件,对吗? (3认同)
  • 请注意,如果您使用“sudo”或等效项并且目录包含大量文件,这将失败。我得到`sudo:无法执行/bin/cp:参数列表太长` (2认同)

Koe*_*en. 44

非常简单,带有*通配符.

cp -r Folder1/* Folder2/
Run Code Online (Sandbox Code Playgroud)

但是根据你的例子,不需要递归,所以以下就足够了:

cp Folder1/* Folder2/
Run Code Online (Sandbox Code Playgroud)

编辑:

或者跳过mkdir Folder2零件并运行:

cp -r Folder1 Folder2
Run Code Online (Sandbox Code Playgroud)


Bri*_*ite 23

要制作精确的副本,权限,所有权,并使用"-a"和"cp"."-r"将复制文件的内容,但不一定保持其他内容相同.

cp -av Source/*Dest /

(确保Dest /存在于第一位)

如果你想从一个到另一个重复更新或确保你也复制所有的dotfiles,这rsync是一个很好的帮助:

rsync -av --delete源/目的地/

这也是"可恢复的",因为如果你在复制时中止它,你可以重新启动它.我喜欢"-v"因为它可以让你看到正在发生的事情,但你可以省略它.