linux中什么命令可以判断硬链接和软链接?
比如,在centos7.2的/etc/systemd/system
目录,有一个mysqld.service,图标上有个箭头,但怎么区分这是软链接还是硬链接呢?以及它指向文件的位置怎么查看?
百度了一下,没找到相关答案。
高洛峰2017-04-17 15:20:12
ls -al
可以查看軟連結的指向
硬連結是相當與創建了文件資訊的一份拷貝,跟原來的文件是一模一樣的,沒有任何區別,除了文件名字,只不過兩個文件名指向的硬碟中的檔案只存在一份。 。
可以參考軟連結與硬連結
ringa_lee2017-04-17 15:20:12
file就可以了,例如:
eechen@ubuntu:~$ file /usr/bin/vi
/usr/bin/vi: symbolic link to `/etc/alternatives/vi'
巴扎黑2017-04-17 15:20:12
軟連結 就如上面說的,用ls看就行了
ls -l
硬鏈接,可以這樣理解: 對一個文件進行拷貝,並且這個文件帶有同步功能,刪除其中一個,另外一個依然存在。
硬鏈接和源文件的i節點號是一樣的,可以用下面的命令查看,但是你也不能區分哪個是源文件,哪個是硬鏈接,因為他們地位是相等的,只能看出這個文件創建了硬連結
ls -li
黄舟2017-04-17 15:20:12
硬連結不能跨檔案系統,不能作用於目錄。多個檔案同時指向一個inode號。
軟體連線可以跨檔案系統,可以作用於目錄和檔案。
ln a c 建立硬連結
在a檔案中加入資料,c中也會有相同資料。
刪除了a文件,c文件依然存在並且。可以把硬連結看成是一種備份。
而軟連接則可以看作是一種引用方式,呼叫方式,連結檔案本身只儲存路徑,不保存資料。
所以當來源檔案被刪除後,軟連線檔案也會失效。
一般透過ls -l 只能查看軟連接。目前暫時沒可以查看硬連結指向方法,其實也沒必要看,因為他們彼此可以看作鏡像,一模一樣。相關訊息,只能看ls -l 後的被硬連結次數。