1. 程式人生 > >linux建立檔案

linux建立檔案

轉載自:https://www.cnblogs.com/lclq/p/5741852.html


1.可以使用cat建立一個新的檔案

  命令:cat>>filename

  使用cat建立檔案時,以系統預設的檔案屬性作為新檔案的屬性,並接受鍵盤輸入作為檔案的內容。輸入結束時按Ctrl+d退出並儲存檔案。

  

  另外,使用cat filename命令可以檢視檔案內容。

  cat file1 file2 >> file3 命令也可將多個檔案合併到一個新的檔案當中。首先建立一個newfile1並輸入內容然後合併。

  

2.使用touch命令建立檔案

  首先,touch命令用的並不多,主要用於修改指定檔案的訪問和修改時間屬性(

Update the access and modification times of each FILE to the current time)。

  當檔案不存在時,則建立一個新的檔案。touch只能建立空檔案。

  touch filename 以當前時間作為訪問和修改時間屬性值建立一個檔案。

  touche -r existfilename filename 根據existfilename的訪問和修改時間屬性確定filename的訪問和修改時間屬性。

  

  可以看到newfile與tfile2的修改時間屬性相同。

3.建立連線檔案

  Linux 系統引入了兩種連結:硬連結 (hard link) 與軟連結(又稱符號連結,即 soft link 或 symbolic link)。

在Linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配一個編號,稱為索引節點號(Inode Index)。在Linux中,多個檔名指向同一索引節點是存在的。一般這種連線就是硬連線。硬連線的作用是允許一個檔案擁有多個有效路徑名,這樣使用者就可以建立硬連線到重要檔案,以防止“誤刪”的功能。其原因如上所述,因為對應該目錄的索引節點有一個以上的連線。只刪除一個連線並不影響索引節點本身和其它的連線,只有當最後一個連線被刪除後,檔案的資料塊及目錄的連線才會被釋放。也就是說,檔案真正刪除的條件是與之相關的所有硬連線檔案均被刪除。

由於硬連結是有著相同 inode 號僅檔名不同的檔案,因此硬連結存在以下幾點特性:

  • 檔案有相同的 inode 及 data block;
  • 只能對已存在的檔案進行建立;
  • 不能交叉檔案系統進行硬連結的建立;
  • 不能對目錄進行建立,只可對檔案建立;
  • 刪除一個硬連結檔案並不影響其他有相同 inode 號的檔案

軟連結檔案有類似於Windows的快捷方式。它實際上是一個特殊的檔案。在符號連線中,檔案實際上是一個文字檔案,其中包含的有另一檔案的位置資訊。

  Linux使用ln命令建立連線檔案,可以使用ln --help檢視ln命令使用說明。

ln [引數] [-T] [原始檔] [連線檔案]
ln [引數] [原始檔] 
ln [引數] [原始檔] [新建連線檔案所在的目錄]
ln [引數] [-t] [新建連線檔案所在的目錄] [原始檔]

  

  建立newfile的連線檔案後使用 ll -i命令可以看到原始檔與連線檔案都指向同一個節點。

  引數:

  --help:顯示幫助資訊

  -b或者 --backup=[Control] :對已經存在的目標連線檔案進行備份。

      [Control]:

    none, off never make backups (even if --backup is given)
    numbered, t make numbered backups (linktonew.~1~、linktonew.~2~....)

    existing, nil numbered if numbered backups exist, simple otherwise
    simple, never always make simple backups

  如果連線檔案已經存在,則首先對該連線檔案進行備份,預設在檔案尾追加~。

  

  -S<備份檔名結尾>或 --suffix=<備份檔名結尾>:備份檔案會以該字串結尾。

ln -S .old newfile linktonew

  備份檔案將以.old結尾,即linktonew.old。

  -f或者--force :建立連線時,先將與目標連線檔案同一目錄下的同名檔案刪除,不管該檔案為何種型別。

  -i:覆蓋既有檔案之前先詢問

  -s或者--symbolic:對原始檔建立軟連線。

  

   可以看到,軟連線檔案的索引節點和大小均與原始檔不同。

  -n:將連線到目錄的軟連線做為普通檔案。

  

  -T:將連線檔案看做普通檔案。

  -v:顯示指令執行過程。

  -t或者 --target-directory=DIRECTORY :制定連線檔案建立的目錄。預設在使用者當前所在的目錄。