linux 下的連線型別
linux 下的連線型別
符號連線(symbolic link)
符號連線的本質是建立一個新的檔案,當系統核心遇到一個符號連線的時候,會根據符號連線
檔案中inode 提供的檔名,再次進行路徑解析。因為符號連線沒有參照目標檔案的inode,
所以符號連線可以跨越檔案系統,並且指向任何的檔案,甚至是不存在的檔案。因為符號連線
的限制比硬連線少所以用的比較多。但是不管是硬連線還是軟連線都應該在需要的時候才去
建立。對於符號連線,因為是以檔案的形式存在,所以需要消耗磁碟空間(給檔案分配inode,block).
另外使用符號連線會增加核心將檔名(路徑名)轉換成inode 的開銷。因為使用符號連線需要
進行兩次路徑解析才能最終確定目標檔案的inode。
連線檔案的建立的語法格式:
ln -s {target-filename} {symbolic-filename}
-s 表示symbolic link.
[oracle@zeng ~]$ ln -s /opt/oracle11g/admin ora_admin
[oracle@zeng ~]$ ll -i ora_admin
810434 lrwxrwxrwx. 1 oracle oinstall 20 Mar 30 15:29 ora_admin -> /opt/oracle11g/admin
[oracle@zeng ~]$ cd ora_admin/
[oracle@zeng ora_admin]$ pwd
因為我比較經常的進入/opt/oracle11g/admin 目錄,所以我會之建立一個連線檔案。這樣我就
可以更加方便的進入目標目錄了。另外我們可以很清楚的看到連線檔案連線到那個目標檔案。
刪除符號連線不會刪除目標檔案。
[oracle@zeng ~]$ rm ora_admin
[oracle@zeng ~]$ cd /opt/oracle11g/admin
[oracle@zeng admin]$ pwd
先建立兩個空檔案用以測試。
[oracle@zeng ~]$ touch linkfile1
[oracle@zeng ~]$ ln -s linkfile1 linkfile2
inode 都是1 也就是說linkfile2 是沒有參照linkfile1 的inode 的。
[oracle@zeng ~]$ ll -i linkfile*
810434 -rw-r--r--. 1 oracle oinstall 0 Mar 30 15:37 linkfile1
810671 lrwxrwxrwx. 1 oracle oinstall 9 Mar 30 15:37 linkfile2 -> linkfile1
當刪除目標檔案以後,linkfile2 指向目標檔案是會亮警告色的(閃動的紅色)。
[oracle@zeng ~]$ rm linkfile1
[oracle@zeng ~]$ ll -i linkfile*
810671 lrwxrwxrwx. 1 oracle oinstall 9 Mar 30 15:37 linkfile2 -> linkfile1
硬連線(hard link)
硬連線的本質是建立一個目錄項指向存放實際檔案資訊的inode。也就是說多個檔案同時指向
一個inode。當對目標檔案建立了硬連線以後,inode 目標檔案與硬連線檔案中的inode 數都
將加1.刪除硬連線inode 計數將會減1.因為硬連線檔案是參照目標檔案的inode 的,所有不能
跨越檔案系統建立硬連線檔案。不過硬連線檔案比符號連線讀寫的時候要高效。硬連線一般是
不會引入儲存開銷的,因為他只是一個目錄項而已。
硬連線建立語法格式:
ln {target-filename} {symbolic-filename}
注:不能建立目錄的硬連線。
先來檢視下為建立硬連線前目標檔案的inode 計數。
[oracle@zeng ~]$ ll -i /opt/oracle11g/diag/rdbms/oracl/oracl/trace/alert_oracl.log
544202 -rw-r-----. 1 oracle oinstall 43647 Mar 30 13:24 /opt/oracle11g/diag/rdbms/oracl/oracl/trace/alert_oracl.log
[oracle@zeng ~]$ ln /opt/oracle11g/diag/rdbms/oracl/oracl/trace/alert_oracl.log /home/oracle/oracle_alert.log
檢視建立完硬連線以後目標檔案與硬連線檔案的inode 計數。
[oracle@zeng ~]$ ll -i /opt/oracle11g/diag/rdbms/oracl/oracl/trace/alert_oracl.log /home/oracle/oracle_alert.log
544202 -rw-r-----. 2 oracle oinstall 43647 Mar 30 13:24 /home/oracle/oracle_alert.log
544202 -rw-r-----. 2 oracle oinstall 43647 Mar 30 13:24 /opt/oracle11g/diag/rdbms/oracl/oracl/trace/alert_oracl.log
另外硬連線更加的安全因為將目標檔案刪除與硬連線檔案其中之一刪除,檔案實際上還是存在的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26110315/viewspace-719939/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL的連線型別SQL型別
- 表連線型別型別
- Kettle自定義資料庫連線型別連線HGDB資料庫型別
- mysql外連線有哪些型別MySql型別
- Linux 命令列下連線WiFiLinux命令列WiFi
- linux下刪除軟連線Linux
- linux下配置ODBC連線MySqlLinuxMySql
- linux下建立迴圈連線Linux
- 連線條件字元型別不一樣。字元型別
- 轉摘_儲存型別與連線方式型別
- Linux下檢視Nginx的併發連線數和連線狀態LinuxNginx
- 等值連線和自然連線的區別
- linux下連線EMC儲存的步驟Linux
- aix檢視連線到主機的儲存型別AI型別
- 使用concatenate連線時,字串型別(String)要比字元型別(C)快字串型別字元
- Linux 下命令列連線Wifi方法Linux命令列WiFi
- linux 下 github ssh 無法連線LinuxGithub
- linux 的軟連線與硬連線Linux
- Linux下用字元表示的檔案型別Linux字元型別
- rac環境vip在linux下的連線資訊Linux
- 轉:linux 下mysql指定連線的埠 或socketLinuxMySql
- Linux下如何通過命令連線wifiLinuxWiFi
- 轉載:內連線與外連線的區別
- js實現的微信獲取當前網路連線型別JS型別
- linux下查詢無效的符號連線(轉)Linux符號
- LINUX 硬連線和軟連線Linux
- 核心交換機光纖埠級連線方式與型別型別
- SQL Server中內連線和外連線的區別SQLServer
- linux下mysql安裝、授權、建立使用者、連線navicat、連線entityLinuxMySql
- UltraEdit下ftp配置,UE遠端連線linuxFTPLinux
- Linux下連線MSSQL之安裝FreeTDSLinuxSQL
- Linux下Oracle重啟和修改連線數LinuxOracle
- Linux系統下的SQL Server不支援其他型別資料來源的連結伺服器LinuxSQLServer型別伺服器
- Linux下的軟連結和硬連結,檔案拷貝的區別Linux
- 使用Java 14的新記錄型別連線資料庫表 - MinborgJava型別資料庫
- 根據連線的資料庫判斷資料庫型別(JAVA)資料庫型別Java
- RedHat Linux 9下識別和使用檔案型別(轉)RedhatLinux型別
- linux檔案型別和軟硬連結祥析Linux型別