假设我在/
通过 连接的远程 Linux 机器中的文件夹中ssh
。
有一个名为 的文件夹testapp
。
/testapp
我想创建这个的精确副本,称为:
/testapp-staging
使用 GUI,我只需右键单击文件夹,复制然后粘贴并重命名即可。
为此我需要使用什么命令?
答案1
答案2
也可以通过使用rsync
,例如:
rsync -vua src/ dst/
在哪里:
-v
,--verbose
:增加详细程度-u
,--update
:跳过接收方较新的文件-a
,--archive
:存档模式;等于-rlptgoD
(否-H,-A,-X
)
如果您具有 root 权限,请使用前缀来sudo
覆盖潜在的权限问题。
答案3
也有文本模式(控制台)文件管理器。午夜指挥官(命令mc
)就是其中之一。
答案4
令人难以置信的是,在 stackoverflow 和 superuser 上,你可以找到很多令人困惑的帖子,这些帖子都与“cp”和“mv”命令有关。发帖者问“如何使用‘cp’?”人们对此发布了“cp”语法,但没有人说,哪个他们实际使用的“cp”或“mv”版本。仅供参考,二实用程序套件,一个由 Berkeley 开发,另一个由 GNU 开发,它们的行为非常不同,因此,如果人们真正说明他们正在谈论哪个版本,那将会很有帮助,否则就像盲人与聋子交谈一样。
因此人们会告诉您使用“-R,-r,--recursive”标志来复制文件夹,只需查看上面内容,但这对我来说不起作用:
cp -av "/System/Library/Carrier Bundles/iPhone/EPlus_de.bundle/" /work/EPlus1/
cp -R "/System/Library/Carrier Bundles/iPhone/EPlus_de.bundle/" /work/EPlus1/
不是将文件夹“EPlus_de.bundle”复制到“/work/EPlus”,而是将“EPlus_de.bundle”内的所有文件复制到“/work/EPlus1/”,因此结构如下:
/work/EPlus1/files
不是
/work/EPlus1/EPlus_de.bundle/files
现在,有人会测试我的命令并声称“它确实有效!”是的,它在你的 GNU 版本上有效,但在 Berkeley 版本上不会按预期工作,因此上面提到递归标志的海报并不是特别有用,再说一次,原始海报从未提到他谈论的是什么版本。
伯克利:如果 FromFolder 末尾有一个斜杠(“/”),则会被解释为:
/*
所以基本上,Berkeley“cp”被告知将 FromFolder 中的所有文件复制到 ToFolder,而不是 FromFolder 本身。
https://www.freebsd.org/cgi/man.cgi?cp
如果源文件以 / 结尾,则复制目录的内容而不是目录本身。
然后,你再次在网上搜索如何复制文件夹,人们会告诉你:
cp -avr ...
当然,这会影响到伯克利版本,所以人们会说:“你错了,它不起作用!是的,它起作用了!”他们互相争论,因为他们谈论的是完全不同的程序。为什么 GNU 没有将他们的应用程序称为“cp2”或其他名称,这让我无法理解。