1. 程式人生 > >建立檔案/目錄連結(只看紅色部分)

建立檔案/目錄連結(只看紅色部分)

1. 使用方式:ln [option] source_file dist_file                      -f 建立時,將同檔案名刪除.                      -i 刪除前進行詢問.                      ln -s abc cde 建立abc 的軟連線                      ln abc cde 建立abc的硬連線, 2. 軟連結與硬連結的區別(通俗):                     硬連結可認為是一個檔案擁有兩個檔名;而軟連結則是                     系統新建一個連結檔案,此檔案指向其所要指的檔案 3. 軟連結與硬連結的區別(講解): Linux 軟連線與硬連線 對於一個檔案來說,有唯一的索引接點與之對應,而對於一個索引接點號,卻可以有多個檔名與之對應。因此,在磁碟上的同一個檔案可以通過不同的路徑去訪問該檔案。注意在Linux下是一切皆檔案的啊,資料夾、新加的硬碟 ...都可以看著檔案來處理的啊。     連線有軟連線和硬連線(hard link)之分的,軟連線(symbolic link)又叫符號連線。符號連線相當於Windows下的快捷方式。     不可以對資料夾建立硬連線的,我們通常用的還是軟連線比較多。     
eg:     ln -s source dist        # 建立軟連線     ln -s /mnt/hgfs/ /home/luo/     注意後面的“/” 是將目錄裡所有的檔案連結過去,必須加上,否則,建立的目錄顯示顏色異常,還不能正常訪問,如cd 進不去     ln source dist            # 建立硬連線     軟連結實際上只是一段文字,裡面包含著它所指向的檔案的名字,系統看到軟連結後自動跳到對應的檔案位置處進行處理;相反,硬聯接為檔案開設一個新的目錄項,硬連結與檔案原有的名字是平權的,在Linux看來它們是等價的。由於這個原因,硬連結不能連線兩個不同檔案系統上的檔案。 (1)軟連線可以 跨檔案系統 ,硬連線不可以 。實踐的方法就是用共享檔案把windows下的 aa.txt文字文件連線到linux下/root目錄 下 bb,cc . ln -s aa.txt /root/bb 連線成功 。ln aa.txt /root/bb 失敗 。 (2)關於 I節點的問題 。硬連線不管有多少個,都指向的是同一個I節點,會把 結點連線數增加,只要結點的連線數不是 0,檔案就一直存在,不管你刪除的是原始檔還是 連線的檔案 。只要有一個存在 ,檔案就 存在 (其實也不分什麼原始檔連線檔案的 ,因為他們指向都是同一個 I節點)。 當你修改原始檔或者連線檔案任何一個的時候 ,其他的檔案都會做同步的修改。軟連結不直接使用i節點號作為檔案指標,而是使用檔案路徑名作為指標。所以 刪除連線檔案 對原始檔無影響,但是刪除原始檔,連線檔案就會找不到要指向的檔案 。軟連結有自己的inode,並在磁碟上有一小片空間存放路徑名. (3)軟連線可以對一個不存在的檔名進行連線 。 (4)軟連線可以對目錄進行連線。 備註:I節點 :它是UNIX內部用於描述檔案特性的資料結構.我們通常稱I節點為檔案索引結點(資訊結點).i節點含有關於檔案的大部分的重要資訊,包括檔案資料塊在磁碟上的地址.每一個I節點有它自己的標誌號,我們稱為檔案順序號.I節點包含的資訊 1.檔案型別 2.檔案屬主關係 3.檔案的訪問許可權 4.檔案的時間截.

相關推薦

建立檔案/目錄連結(紅色部分)

1. 使用方式:ln [option] source_file dist_file                      -f 建立時,將同檔案名刪除.                      -i 刪除前進行詢問.                      ln -s abc cde 建立abc

在Linux中建立檔案目錄連結、硬連結的方法

1. 使用方式:ln [option] source_file dist_file              -f 建立時,將同檔案名刪除              -i 刪除前進行詢問       

Java的mkdir()與mkdirs()引發的悲劇---關於java的mkdir()方法無法建立檔案目錄失敗問題

昨晚深夜在做專案的檔案上傳,在上傳之前要先判斷指定的檔案目錄是否存在,如果不存在就先建立改目錄。 因為之前已經做過類似的功能了,所以就把判斷檔案目錄以及建立的程式碼直接copy過來了,然而很鬱悶的是,一模一樣的程式碼,這回卻遇到一個特別奇葩的問題: 一下是昨晚我要判斷的檔案目錄:

遞迴遍歷建立檔案目錄

TreeNode desktop = new TreeNode(Environment.GetFolderPath(Environment.SpecialFolder.Desktop));                

Java的mkdir()與mkdirs()引發的悲劇---關於java的mkdir()方法無法建立檔案目錄問題

昨晚深夜在做專案的檔案上傳,在上傳之前要先判斷指定的檔案目錄是否存在,如果不存在就先建立改目錄。 因為之前已經做過類似的功能了,所以就把判斷檔案目錄以及建立的程式碼直接copy過來了,然而很鬱悶的是,一模一樣的程式碼,這回卻遇到一個特別奇葩的問題: 一下是昨晚我要判斷的檔

MFC用CreateDirectory建立檔案目錄

CreateDirectory這個函式的作用是建立一個新的目錄。如果底層檔案系統支援檔案和目錄上的安全描述,該功能可將指定的安全描述到新的目錄。 函式原型: BOOL CreateDirectory( LPCTSTR lpPathName, LPSECURITY

Java在建立檔案目錄時在windows中成功,在Linux中失敗的解決辦法

  首先看一下Java建立檔案目錄的程式碼: /** * 建立父檔案路徑 * @param imagePath * @return */ public boolean makeParentFolder(S

C++:用CreateDirectory建立檔案目錄

 CreateDirectory這個函式的作用是建立一個新的目錄。如果底層檔案系統支援檔案和目錄上的安全描述,該功能可將指定的安全描述到新的目錄。 函式原型: BOOL CreateDirectory(   LPCTSTR lpPathName,  &

C++ 建立檔案目錄

void mkdirWithcmd() { string defaultPath = "E:"; string folderPath = defaultPath + "\\testFolder"; string command; command = "mkdir -p " + folder

【Java File類】建立檔案目錄並在指定路徑建立檔案

import java.io.File; import java.io.IOException; public class FileApp { public static void main(

Fabric 在Linux上自動建立檔案目錄

自動建立系列目錄,並且給予許可權。import paramiko, os, time from fabric.api import env, roles, run, execute, cd # !/usr/bin/env python # Please modify se

【Spring註解驅動開發】使用@PropertySource載入配置檔案,我這一篇!!

## 寫在前面 > 很多小夥伴都在問:冰河,你的Spring專題更新完了嗎?怎麼感覺像是寫了一半啊?我:沒有更新完呀,整個專題預計會有70多篇。那怎麼更新了一半就去寫別的了呢?那是因為有很多其他的小夥伴在後臺留言說:急需學習一些其他的技術,所以,臨時調整的。放心,Spring專題會持續更新的!這不,今

STM32F407VET6之IAR之ewarm7.80.4工程建立(基於官方韌體庫1.6版本) 的工程檔案目錄

最後整理結構如下所示,├─cmsis│ startup_stm32f401xx.s│ startup_stm32f40xx.s│ startup_stm32f40_41xxx.s│ startup_stm32f410xx.s│ startup_stm32f411xe.s│ startup_stm32f427x

FTP判斷ftp上是否有檔案目錄,沒有就建立的具體案例

/// <summary> /// 判斷ftp上是否有指定的檔案目錄,沒有建立 /// </summary> /// <param name="ftpPath">指定路徑</param> public void FtpDirectoryAndFile(stri

Python 判斷並建立多級檔案目錄

在使用Python寫入檔案檔案的過程中,需要判斷資料夾路徑是否存在,不存在需要建立多級路勁 import os #先定義一個帶路徑的檔案 filename = "/home/mydir/test

Java建立多級目錄檔案

File file = new File("E:\\Tomcat\\apache-tomcat-7.0.52\\webapps\\carDomain\\fireWare\\uuid\\APP.bin"); if (!file.getParentFile().exists())

android 建立檔案建立資料夾、將assets下檔案複製到指定目錄

1.獲取APP當前目錄路徑: public String getPath(){ File fileDire = getFilesDir();//獲取../data/應用的包名/fil

Shell指令碼執行hive語句 | hive以日期建立分割槽表 | linux schedule程式 | sed替換檔案字串 | shell判斷hdfs檔案目錄是否存在

#!/bin/bash source /etc/profile; ################################################## # Author: ouyangyewei # #

建立檔案時,提示找不見指定的路徑,那是因為沒有建立目錄導致的

比如建立一個檔案: File file = new File(“C:/test.txt”);  file.createNewFile(); 這樣是正確的,不會出現任何錯去異常。 但是這樣就出現 “系統

簡單shell下載github的包含檔案目錄

首先,github的單個檔案是可以下載的。這個方法不會自動分析目錄,如能下載目錄下的檔案。這個對複雜目錄結構不實用。只有少數目子目錄的可以手工解決。 1,要要下的目的的網頁上把檔名copy下來,並存成filename的檔案。樣子如下: Makefile    f