Philippe Asked: 2018-09-14 03:17:37 +0800 CST2018-09-14 03:17:37 +0800 CST 2018-09-14 03:17:37 +0800 CST cp -Tr 覆盖行为 772 我正在使用 GNU coreutils 我有一个foo包含文件file1的目录和一个bar包含file2. 如果我现在执行cp -rT foo bar, bar 将包含这两个文件,而不是像手册页可能让您相信的那样被覆盖。 我希望 'bar' 只包含 'foo' 的内容,而不是合并。 shell cp 1 个回答 Voted Best Answer Kusalananda 2018-09-14T04:18:08+08:002018-09-14T04:18:08+08:00 对于 GNU cp,该-T选项用于确保源目录不会放在目标目录中。它不会导致目标目录的内容被删除。 此 ( ) 上的信息文档info '(coreutils)Target directory'说(它mv用作示例): -T --no-target-directory 当最后一个操作数是目录或目录的符号链接时,不要特别对待它。这可以帮助避免在共享区域中运行的程序中的竞争条件。例如,当命令mv /tmp/source /tmp/dest成功时,不能保证/tmp/source已重命名为:如果其他进程创建为目录,则/tmp/dest它可能已重命名为。但是,如果成功,则没有问题被重命名为./tmp/dest/source/tmp/destmv -T /tmp/source /tmp/dest/tmp/source/tmp/dest 请注意,如果不为空,mv -T source dest则会失败。dest bar要将示例中的内容替换为的内容foo,请使用 rm -rf bar cp -r foo bar 或者, rsync --archive --delete foo/ bar
对于 GNU
cp
,该-T
选项用于确保源目录不会放在目标目录中。它不会导致目标目录的内容被删除。此 ( ) 上的信息文档
info '(coreutils)Target directory'
说(它mv
用作示例):请注意,如果不为空,
mv -T source dest
则会失败。dest
bar
要将示例中的内容替换为的内容foo
,请使用或者,