Linux軟鏈接的使用
轉自:https://www.cnblogs.com/sueyyyy/p/10985443.html,本博文僅對原博排版稍微優化。
更為細致的硬鏈接、軟鏈接的介紹可參考:Linux中的硬鏈接和軟鏈接
另外,提供筆者對軟連接的一個最簡單的理解:就相當于Windows中的快捷方式文件,但是軟連接不僅可以鏈接文件,還可以鏈接目錄。
并且給出一個應用場景示例:我們在訓練深度學習模型時,通常數據集會單獨放在一個目錄下,我們某個模型的訓練腳本則在工程目錄內,這時我們就要給出很長一串路徑寫在我們的文件內,如:
train_dataset = datasets.ImageFolder('/ssd1t/song/Datasets/ImageNet/ImageNet_2012_DataSets/ILSVRC2012_img_train',transforms.Compose(augmentation))
但實際上,我們可以通過軟連接,將其鏈接到我們的工程目錄下,并且這樣并不會占據額外的空間:
ln -s /ssd1t/song/Datasets/ImageNet/ImageNet_2012_DataSets/ILSVRC2012_img_train imagenet_trainset
這樣,在我們的訓練腳本內指定路徑時就可以直接指向imagenet的軟連接imagenet_trainset
train_dataset = datasets.ImageFolder('imagenet_trainset',transforms.Compose(augmentation))
另外要注意,如果想要生成目錄(而非文件)的軟連接,必須用絕對路徑。
以下是轉載原文:
簡介
軟連接是linux中一個常用命令,它的功能是為某一個文件在另外一個位置建立一個同不的鏈接。
具體用法是:ln -s 源文件 目標文件
。
當 我們需要在不同的目錄,用到相同的文件時,我們不需要在每一個需要的目錄下都放一個必須相同的文件,我們只要在其它的 目錄下用ln命令鏈接(link)就可以,不必重復的占用磁盤空間。
例如:
ln -s /usr/local/mysql/bin/mysql /usr/bin
這樣我們就對/usr/bin目錄下的mysql命令創建了軟連接
軟鏈接和硬連接
硬連接
硬連接指通過索引節點來進行連接。在Linux的文件系統中,保存在磁盤分區中的文件不管是什么類型都給它分配一個編號,稱為索引節點號(Inode Index)。在Linux中,多個文件名指向同一索引節點是存在的。一般這種連接就是硬連接。硬連接的作用是允許一個文件擁有多個有效路徑名,這樣用戶就可以建立硬連接到重要文件,以防止“誤刪”的功能。其原因如上所述,因為對應該目錄的索引節點有一個以上的連接。只刪除一個連接并不影響索引節點本身和其它的連接,只有當最后一個連接被刪除后,文件的數據塊及目錄的連接才會被釋放。也就是說,文件真正刪除的條件是與之相關的所有硬連接文件均被刪除。
軟連接
另外一種連接稱之為符號連接(Symbolic Link),也叫軟連接。軟鏈接文件有類似于Windows的快捷方式。它實際上是一個特殊的文件。在符號連接中,文件實際上是一個文本文件,其中包含的有另一文件的位置信息。
使用方式
創建軟鏈接
ln -s [源文件或目錄] [目標文件或目錄]
例:
當前路徑創建test
引向/var/www/test
文件夾 :
ln –s /var/www/test test
創建/var/test
引向/var/www/test
文件夾
ln –s /var/www/test /var/test
刪除軟鏈接
和刪除普通的文件是一樣的,刪除都是使用rm來進行操作
例:
刪除test
rm –rf test
修改軟鏈接
ln –snf [新的源文件或目錄] [目標文件或目錄]
這將會修改原有的鏈接地址為新的地址
例:
創建一個軟鏈接
ln –s /var/www/test /var/test
修改指向的新路徑
ln –snf /var/www/test1 /var/test
常用參數:
-f : 鏈結時先將與 dist 同檔名的檔案刪除-d : 允許系統管理者硬鏈結自己的目錄-i : 在刪除與 dist 同檔名的檔案時先進行詢問-n : 在進行軟連結時,將 dist 視為一般的檔案-s : 進行軟鏈結(symbolic link)-v : 在連結之前顯示其檔名-b : 將在鏈結時會被覆寫或刪除的檔案進行備份-S SUFFIX : 將備份的檔案都加上 SUFFIX 的字尾-V METHOD : 指定備份的方式--help : 顯示輔助說明--version : 顯示版本