LN(1) | General Commands Manual | LN(1) |
ln -在文件之間建立連接
ln [options] source [dest]
ln [options] source...directory
[-f]
[-bdfinsvF] [-S backup-suffix] [-V {numbered, existing, simple}] [--help] [--version] [--]
在Unix世界裏有兩個'link'(連接)概念,一般稱之爲硬連接和軟連接。一個硬連 接僅僅是一個文件名。(一個文件可以有好幾個文件名,只有將最後一個文件名從 磁盤上刪除,才能把這個文件刪掉。文件名的個數是由ls(1)來確定的。所有的文件 名都處於同一個狀態,也就沒有什麼“源名字” 之說。通常文件系統裏的一個 文件的所有名字包含着一樣的數據信息,不過這樣也不是必需的。)一個軟連接 (或符號連接)是完全不同的:它是一個包含了路徑信息的小小的指定文件。因此, 軟連接可以指向不同文件系統裏的文件(比如由NFS裝載的不同機器文件系統上的文 件),甚至可以指向一個不一定確實存在的文件。在軟連接文件被訪問(系統調用 open(2) 或stat(2))的時候,操作系統用該文件所包含的路徑替換該文件的訪問介 入點,從而實現對所指文件的訪問。(用命令rm(1)和unlink(2)可以刪除連接,但 不是刪除該文件所指向的文件。系統指定調用lstat(2)和readlink(2) 來讀取連接 文件與其所指文件的狀態。到底是對軟連接文件操作,還是對被指向文件操作,由 於不同操作系統件存在不同的系統調用,而存在着差異。)
ln 在文件間產生連接。缺省時,產生硬連接,有-s選項,則產生符號(軟)連接。
如果僅僅只給出一個文件名,那麼ln將在當前目錄裏產生這個文件的連接, 也就是說,以該文件(的最後一個)名稱等同的名字在當前目錄裏產生一個連接 (GNU範圍內); 如果最後一個參數是一個已存在的目錄名, ln 將在那個目錄裏給每一個源文件用以與源文件相同的文件名產生連接, (不同情況見以下--no-dereference的描述); 如果只給出兩個文件名,ln將產生源文件的連接; 如果最後一個參數不是一個目錄名或多於兩個文件名,則報錯。
缺省時,ln不刪除已存在的文件或符號連接。 (因此,它可以被用來鎖定目標文件,即當dest已經不存在時) 但選項-f可以強制執行。
在已存在的實現中,只有超級用戶才能建立目錄的硬連接。 POSIX 禁止系統調用link(2)和ln建立目錄的硬連接 (但是允許在不同的文件系統間建立硬連接)。
當目的目錄名是一個確實存在的目錄(不是一個符號連接)時, 不進行模糊處理,而在那個目錄裏建立連接。 但是當所指定的目的目錄名是一個符號連接時, 有兩種方式來對待用戶的要求。 ln 會視目的爲一個普通目錄,並且在裏面建立連接。 或者如同符號連接本身一樣地視其爲一個非目錄。 這種情況下,ln 將在建立新連接之前刪除或備份這個符號連接。 缺省地,把符號連接視爲普通目錄來對待。
對於想備份那些有可能被覆蓋、改寫或者被破壞的文件, GNU提供了比如:cp, mv, ln, install和patch等命令。 可以使用-b參數生成備份文件。備份文件的名稱由-V參數指定。 假如備份文件的名稱是通過原文件名加後綴而得到, 那麼要用-S參數來指定這個後綴。
正確有效的METHOD參數對應於Emacs變量'version-control'。(唯一被承認的縮寫):
t, numbered 產生數字標記形式的備份文件。
nil, existiong 對已有數字標記備份的文件進行數字備份,而簡單備份其他類型文件。
never, simple 總是進行簡單備份。
變量LANG, LC_ALL, LC_COLLATE, LC_CTYPE和LC_MESSAGES具有通常意義。 在GNU版本里,變量 SIMPLE_BACKUP_SUFFIX和VERSION_CONTROL控制備份文件的命名。
POSIX 1003.2,儘管POSIX 1003.2(1996)沒有討論軟連接。 軟連接在BSD中有介紹,在System V release3(或更老版本)系統中不出現。
ls(1), rm(1), link(2), lstat(2), open(2), readlink(2), stat(2), unlink(2)
本文出自應用文檔-4.0,其他版本肯定會有微小差別。 任何添加或糾錯意見請寄:aeb@cwi.nl。 程序Bugs請告知:fileutils-bugs@gnu.ai.mit.edu
Surran <email>
2000/10/19
http://cmpp.linuxforum.net
本頁面中文版由中文
man 手冊頁計劃提供。
中文 man
手冊頁計劃:https://github.com/man-pages-zh/manpages-zh
November 1998 | GNU fileutils 4.0 |