一直在认真思考 cp 选项 -x 的想法导致怀疑两个相同文件系统之间的复制比两个不同文件系统之间的复制更快。以及使用cp --reflink=auto
或使用cp --u
哪一种更快、更高效 请解释一下,证明是真是假。
答案1
cp
ObPOSIX:这里讨论的选项都不是标准的。
cp -x
与在同一文件系统内复制无关;它导致递归下降仅考虑同一文件系统中的目录和文件。这允许用户运行,例如,
cp -rx / /somewhereelse
备份根文件系统而不复制任何其他文件系统(包括/proc
等)。/somewhereelse
可以位于另一个文件系统上(在本例中应该是)。
该-x
选项适用于每个参数,因此cp -rx / /home /somewhereelse
将复制 下可见的任何内容/
,并单独复制 下的内容/home
,而不会跨越文件系统边界;即使/
和/home
不在同一个文件系统上它也可以工作。
就性能而言,任何减少复制数据量的选项都会提高整体操作的速度。因此cp -u
,当复制到已经具有(某些)源文件副本的目录时,速度会更快,因为它不会复制任何具有相同时间戳或比相应源文件更新的文件。cp --reflink=auto
只要可以使用引用链接,速度就会更快,因为这可以避免完全复制数据块。