Linux編程 4 (創建文件touch,複製文件cp,tab補全,鏈接文件ln)

来源:https://www.cnblogs.com/MrHSR/archive/2018/09/04/9588242.html
-Advertisement-
Play Games

一.創建文件 使用touch 可以創建空文件,例如opt目錄下創建test2.txt文件。這種一般是有些程式必須要先創建文件,才能使用。 二. 複製文件 2.1 使用cp命令來複制文件,需要兩個參數 源對象和目標對象。例如在opt目錄下將test2.txt複製一份為test3.txt。 2.2 使用 ...


一.創建文件

  使用touch 可以創建空文件,例如opt目錄下創建test2.txt文件。這種一般是有些程式必須要先創建文件,才能使用。
        

二. 複製文件

  2.1 使用cp命令來複制文件,需要兩個參數-----源對象和目標對象。例如在opt目錄下將test2.txt複製一份為test3.txt。
        

  2.2 使用cp –R參數,可以一條命令將整個目錄內容遞歸複製,例如將/opt目錄及目錄下所有文件複製到/usr下, 查看 /usr/opt 內容已全部複製過來。
        

      下麵是刪除/usr/opt目錄及目錄下所有文件

         

   2.3 也可以在cp命令中使用通配符,例如將opt目錄下的以.txt結尾的文件全部複製到/usr目錄下。
        

 三.  製表鍵自動補全  

    當命令字元太長,很容易輸錯命令。可以使用tab鍵自動補全。例如關機命令shutdown。可以按下shut按tab來補全,文件目錄太長用法也是一樣。自動補全在於要給shell足夠的信息,使其與其他名字區別。

    如果按下tab無法補全,可以再按一下tab,將顯示以輸入命令開頭的文件名,例如輸入sh, 按一下tab沒有作用,再按一下tab,將顯示sh開頭的所有信息。
        

 四.鏈接文件 ln(共用文件)   

    鏈接文件是linux文件系統的一個優勢,如需要在系統上維護同一個文件的兩份或多份副本,除了保存多份單獨的物理文件副本之外,還可以採用保存一份物理文件副本和多個虛擬副本的方法。虛擬副本叫鏈接。鏈接是目錄中指向文件真實位置的點位符。分二種類型文件鏈接類型: 一是符號鏈接又叫軟鏈接, 二是硬鏈接。
    4.1 符號鏈接就是一個實實在在的文件,它指向存放在虛擬目錄結構中某個地方的另一個文件,這兩個通過符號鏈接在一起的文件,彼此的內容並不相同。

      使用ln命令以及-s選項來創建符號鏈接,下麵是在etc目錄下,給my.cnf創建符號鏈接在本目錄。
      

      如下所示:ls_my.cnf只有6位元組,它只是指向my.cnf而已。
      

      嘗試隨意使用vim修改某個配置個文件,都會在另一文件中修改,因為是符號鏈接。
      

      鏈接文件為 Linux 系統解決了文件的共用使用,還帶來了隱藏文件路徑、增加許可權安全及節省存儲等好處。

    4.2 硬鏈接會創建獨立的虛擬文件,其中包含了原始文件的信息及位置,引用硬鏈接文件等同於引用了源文件。ln命令不需要加額外參數。

      使用ln命令來創建硬鏈接,還是使用etc下的my.cnf來演示:
      

      上圖使用了ls –li 命令顯示了inode編號,列表第一列(文件的唯一標識,它用來區別同一個文件而非是文件名來區別)以及長列表。帶有硬鏈接的文件共用inode編號。因為它們終歸是同一個文件,鏈接計數顯示2(列表中第三項),顯示兩個文件都有兩個鏈接,另外它們文件大小也一模一樣。

      

      嘗試隨意某個配置文件,都會在另一文件中修改,因為是一個完全相同的副本. 是一個 inode 號對應多個文件名, 硬鏈接就是同一個文件使用了多個別名

總結:

  硬鏈接以下幾點特性:

    文件有相同的 inode;

    只能對已存在的文件進行創建;

    不能交叉文件系統進行硬鏈接的創建;

    不能對目錄進行創建,只可對文件創建;

    刪除一個硬鏈接文件並不影響其他有相同 inode 號的文件;

  軟鏈接以下幾點特性:

    軟鏈接有自己的文件屬性及許可權等;

    可對不存在的文件或目錄創建軟鏈接;

    軟鏈接可交叉文件系統;

    軟鏈接可對文件或目錄創建;

    創建軟鏈接時,鏈接計數 i_nlink 不會增加;

    刪除軟鏈接並不影響被指向的文件,但若被指向的原文件被刪除,則相關軟連接被稱為死鏈接(即 dangling link,若被指向路徑文件被重新創建,死鏈接可恢復為正常的軟鏈接)

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1 DateTime beginTime = DateTime.Now.Date; 2 Console.WriteLine(beginTime); 3 DateTime endTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, Dat ...
  • 用 .net core 寫的 滑動+點擊漢字的驗證碼,代碼比較簡單就不做說明瞭。 github地址 https://github.com/wangchengqun/NetCoreVerificationCode ...
  • 前言 我想,有一部分程式員應該是在二三線城市的,雖然不知道占比,但想來應該不在少數。 我是這部分人群中的一份子。 我們這群人,面對的客戶,大多是國內中小企業,或者政府的小部門。這類客戶的特點是,資金有限,人力有限。 什麼意思呢?就是你如果敢給他安一臺Linux伺服器,客戶的信息員和測試員會把你堵在牆 ...
  • 第1章 CentOS7的使用 1.1 為什麼要使用CentOS7版本 CentOS7是在CentOS6基礎上發佈的新版本,與之前的版本相比,主要的更新包括: 1、內核更新到3.10.0 2、支持Linux容器 3、LVM快照支持ext4和XFS 4、轉用systemd、firewalld和GRUB2 ...
  • 版權聲明:本文為博主原創文章,未經允許,不得轉載。 head head 命令可以將一段文本的開頭一部分輸出到標準輸出。 head命令既可以處理文本文件也可以處理標準輸入。 基本應用 處理文本文件: 當有多個文件輸入時,head會順序處理並輸出: 處理標準輸入: 當沒有其他參數時,head預設輸出前1 ...
  • 星期三, 05. 九月 2018 02:03上午 beautifulzzzz ![][ bar] 1、前言 上一篇講瞭如何編譯安裝BlueZ 5,本篇主要在於玩BlueZ,用命令行去操作BLE設備: [ [BlueZ] 1、Download install and use the BlueZ and ...
  • 在Windows 10中截取截圖的6種方式 簡介 截圖對於不同的目的很重要。它可以用於捕獲筆記本電腦上的任何內容的截圖。所以,如果你使用Windows 10,你可能不知道如何截圖,因為它是比較新的。因此,我們展示了5種方式,您可以屏蔽任何東西,特別是如果您使用Windows 10.這裡有6種方式在W ...
  • 版權聲明:本文為博主原創文章,未經允許不得轉載。 ffmpeg是Linux中轉換音頻視頻文件的常用工具。 mp4 to mp3: -i: 表示輸入的音頻或視頻 -ac: channel 設置通道3, 預設為1 -ar: sample rate 設置音頻採樣率 -acodec: 使用codec編解碼 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...