![Mac 上 cp 和 cp -rf 之间的区别](https://linux22.com/image/229405/Mac%20%E4%B8%8A%20cp%20%E5%92%8C%20cp%20-rf%20%E4%B9%8B%E9%97%B4%E7%9A%84%E5%8C%BA%E5%88%AB.png)
谁能解释一下Mac 上cp some-file.txt some-folder
和cp -rf some-file.txt some-folder
Mac 上有什么区别吗?
有人告诉我这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. 中所述),请尝试取消链接目标文件并继续。