自學Linux Shell3.4-文件處理命令touch cp mv rm

點擊返回 自學Linux命令行與Shell腳本之路html

3.4-文件處理命令touch cp mv rm

1. touch命令

  • 一是用於把已存在文件的時間標籤更新爲系統當前的時間(默認方式),它們的數據將原封不動地保留下來;
  • 二是用來建立新的空文件。

   touch(選項)(參數)數組

   選項spa

  • -a:或--time=atime或--time=access或--time=use 只更改存取時間;
  • -c:或--no-create 不創建任何文件;若是文件不存在,則不要進行建立。
  • -d:<時間日期> 使用指定的日期時間,而非如今的時間;
  • -f:嘗試強制 touch 運行,而無論文件的讀和寫許可權;
  • -m:或--time=mtime或--time=modify 只更該變更時間;
  • -r:<參考文件或目錄> 把指定文件或目錄的日期時間,通通設成和參考文件或目錄的日期時間相同;
  • -t:<日期時間> 使用指定的日期時間,而非如今的時間;
  • --help:在線幫助;
  • --version:顯示版本信息。

  參數
       文件:指定要設置時間屬性的文件列表。命令行

注:
  • touch 命令調用 utime () 子例程來更改所涉及文件的修改和訪問時間。當沒有真正擁有該文件,即便對文件有寫許可權,使用標誌時也可能使 touch 命令失敗。
  • 當使用 touch 命令時,若是接收到錯誤消息,不要指定完整路徑名 /usr/bin/touch 。

 舉例1   touch 文件   這會將 文件  的上次訪問和修改時間設置爲當前日期和時間。若是 文件 不存在,touch 命令就建立一個同名的空文件。3d

  舉例2   touch -c 文件     避免建立新文件code

舉例3 touch -c  -t  時間  文件名           明確設置訪問和修改時間htm

 

舉例4 touch -r  文件名1 文件名2           要使用另外一文件的時間戳記而不用當前時間blog

2. CP命令

cp命令主要用於複製文件或目錄。

cp(選項)原文件/目錄  目標文件/目錄
遞歸

選項get

  • -a:此選項一般在複製目錄時使用,它保留連接、文件屬性,並複製目錄下的全部內容。其做用等於dpR參數組合。
  • -d:複製時保留連接。這裏所說的連接至關於Windows系統中的快捷方式。
  • -f:覆蓋已經存在的目標文件而不給出提示。
  • -i:與-f選項相反,在覆蓋目標文件以前給出提示,要求用戶確認是否覆蓋,回答"y"時目標文件將被覆蓋。
  • -p:除複製文件的內容外,還把修改時間和訪問權限也複製到新文件中。
  • -r    -R   若給出的源文件是一個目錄文件,此時將複製該目錄下全部的子目錄和文件。
  • -l:不復制文件,只是生成連接文件。

舉例1    目標是文件,若不存在,則會新建目標文件(將源內容填充至目標文件中) ;  若目標是已存在文件,會將源內容覆蓋至目標文件中(不提示)

           若目標是已存在文件,會將源內容覆蓋至目標文件中,想提示使用-i

 

舉例2   目標是目錄,則會在目標目錄下新建與源同名的文件,並將源的內容填充至新文件中

 

舉例3  源是多個文件,則目標必須是目錄且存在,其餘情形均爲出錯

 

舉例4  源是目錄:需使用-r選項,表示遞歸 ,

  • 目標不存在,則會建立指定目錄,只能是單個源目錄。
  • 目標存在且是文件則會報錯,不可能把目錄下的全部東西放到一個文件中去 
  • 目標存在且是目錄,則會將源下全部文件和目錄複製到目標中去   

 

3. mv命令

用於移動文件或者將文件更名

mv [選項] 源文件或目錄 目標文件或目錄

  • -b :若需覆蓋文件,則覆蓋前先行備份。 
  • -f :force 強制的意思,若是目標文件已經存在,不會詢問而直接覆蓋;
  • -i :若目標文件 (destination) 已經存在時,就會詢問是否覆蓋!
  • -u :若目標文件已經存在,且 source 比較新,纔會更新(update)
  • -t  : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目標目錄,該選項適用於移動多個源文件到一個目錄的狀況,此時目標目錄在前,源文件在後。

mv命令中第二個參數類型的不一樣(是目標文件仍是目標目錄),mv命令將文件重命名或將其移至一個新的目錄中。

  • 當第二個參數類型是文件時,mv命令完成文件重命名,此時,源文件只能有一個(也能夠是源目錄名),它將所給的源文件或目錄重命名爲給定的目標文件名。
  • 當第二個參數是已存在的目錄名稱時,源文件或目錄參數能夠有多個,mv命令將各參數指定的源文件均移至目標目錄中。在跨文件系統移動文件時,mv先拷貝,再將原有文件刪除,而鏈至該文件的連接也將丟失。

舉例1   將源文件 移動至目標目錄中

舉例2   mv  -i :若目標文件已經存在時,就會詢問是否覆蓋

4. rm命令

rm命令能夠刪除一個目錄中的一個或多個文件或目錄,也能夠將某個目錄及其下屬的全部文件及其子目錄均刪除掉。對於連接文件,只是刪除整個連接文件,而原有文件保持不變。

注意:使用rm命令要格外當心。由於一旦刪除了一個文件,就沒法再恢復它。因此,在刪除文件以前,最好再看一下文件的內容,肯定是否真要刪除。rm命令能夠用-i選項,這個選項在使用文件擴展名字符刪除多個文件時特別有用。使用這個選項,系統會要求你逐一肯定是否要刪除。這時,必須輸入y並按Enter鍵,才能刪除文件。若是僅按Enter鍵或其餘字符,文件不會被刪除。

rm (選項)(參數)
  • -d:直接把欲刪除的目錄的硬鏈接數據刪除成0,刪除該目錄;
  • -f:強制刪除文件或目錄;
  • -i:刪除已有文件或目錄以前先詢問用戶;
  • -r或-R:遞歸處理,將指定目錄下的全部文件與子目錄一併處理;       
     rm -r *     刪除當前目錄下除隱含文件外的全部文件和子目錄
  • --preserve-root:不對根目錄進行遞歸操做;
  • -v:顯示指令的詳細執行過程。

  參數      文件:指定被刪除的文件列表,若是參數中含有目錄,則必須加上-r或者-R選項

 

相關文章
相關標籤/搜索