linux默認cp命令是有別名的,也就是說在執行cp命令的時候,實際上執行的是別名的命令。
通過alias命令可以查看當前系統的別名設置情況:
可以看到cp命令已經設置了別名。這樣即使使用cp -f也不會生效。
\cp會調用原生cp命令不使用別名,因此能達到效果。
除了\cp外還有一種寫法:
#unalias cp
#cp -rf ***
首先取消別名,然後再調用。unalias命令不是永久生效的。
===========
通過ln -s 創建軟鏈接語法爲:
ln -s 源文件路徑 軟鏈接文件路徑
其中,“源文件路徑”有絕對路徑和相對路徑兩種,使用時需要注意,不然軟鏈接文件是找不到源文件的。
===
ln 源文件 新文件 #創建硬鏈接
等效於:cp -l 源文件 新文件
ln -s 源文件 新文件 #創建軟鏈接
等效於:cp -s 源文件 新文件
===ln: failed to create symbolic link ‘librdkafka.so’: Operation not supported===
這個問題主要原因是在使用ln創建軟連接時候失敗了,因爲這個文件系統是NTFS,windows上的,通過虛擬機掛載到linux上,所以並不支持ln操作
===軟鏈接與硬鏈接的特點===
不論是修改源文件(test 文件),還是修改硬鏈接文件(test-hard 文件),另一個文件中的數據都會發生改變。
不論是刪除源文件,還是刪除硬鏈接文件,只要還有一個文件存在,這個文件(inode 號是 262147 的文件)都可以被訪問。
硬鏈接不會建立新的 inode 信息,也不會更改 inode 的總數。
硬鏈接不能跨文件系統(分區)建立,因爲在不同的文件系統中,inode 號是重新計算的。
硬鏈接不能鏈接目錄,因爲如果給目錄建立硬鏈接,那麼不僅目錄本身需要重新建立,目錄下所有的子文件,包括子目錄中的所有子文件都需要建立硬鏈接,這對當前的 Linux 來講過於複雜。
不論是修改源文件(check),還是修改硬鏈接文件(check-soft),另一個文件中的數據都會發生改變。
刪除軟鏈接文件,源文件不受影響。而刪除原文件,軟鏈接文件將找不到實際的數據,從而顯示文件不存在。
軟鏈接會新建自己的 inode 信息和 block,只是在 block 中不存儲實際文件數據,而存儲的是源文件的文件名及 inode 號。
軟鏈接可以鏈接目錄。
軟鏈接可以跨分區。