Mac 上 cp 和 cp -rf 之间的区别

Mac 上 cp 和 cp -rf 之间的区别

谁能解释一下Mac 上cp some-file.txt some-foldercp -rf some-file.txt some-folderMac 上有什么区别吗?

有人告诉我这cp -rf会强制cp覆盖现有文件,但似乎即使没有-rf.

-rf那么这里使用的原因是什么呢?

答案1

-r复制单个文件时没有用(它指示cp递归复制目录)。最重要的是,在 Mac(以及POSIXcp) 它-R不是-r

-f强制覆盖删除如有必要,目标文件。尝试这个:

cp some-file.txt some-folder
chmod 000 some-folder/some-file.txt
cp some-file.txt some-folder

第二个cp会失败,因为some-file.txt无法写入。现在添加-f

cp -f some-file.txt some-folder

这次cp成功了,因为虽然它无法写入现有的some-file.txt,但它可以删除它并再次复制该文件。

-f不是 Mac 特定的,它是由 POSIX 指定:

如果无法获取目标文件的文件描述符(如步骤 3.a.ii. 中所述),请尝试取消链接目标文件并继续。

相关内容