歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

RHCE學習筆記2-- 命令行操作文件

1、創建與刪除文件 (touch ,rm)   touch xxxx 創建一個新的空文件   touch -t 201412250101 xxxx 創建一個文件並指定時間屬性(年月日時分.秒)       [root@cai home]# touch xxxx   [root@cai home]# touch -t 201412301030 yyyy   [root@cai home]# ls -l xxxx yyyy   -rw-r--r--. 1 root root 0 11月 2 13:00 xxxx (當前時間2015年11月2日2點13分)   -rw-r--r--. 1 root root 0 12月 30 2014 yyyy (指定時間2014年12月30日10點30分)       如何修改linux文件的時間    把所有的.sh文件修改到三個月前(2013年10月13)的時間。操作命令: [root@case test]# touch -d "2013/10/13" *.sh       先把touch的參數說明貼在這裡: 命令參數:   -a   或--time=atime或--time=access或--time=use  只更改存取時間。   -m  或--time=mtime或--time=modify  只更改變動時間。   -c   或--no-create  不建立任何文檔。   -d  使用指定的日期時間,而非現在的時間。時間是字符串   -t  使用指定的日期時間,而非現在的時間。時間格式是年月日時分.秒   -f  此參數將忽略不予處理,僅負責解決BSD版本touch指令的兼容性問題。   -r  把指定文檔或目錄的日期時間,統統設成和參考文檔或目錄的日期時間相同。       touch file1.txt  更新file1.txt的存取和修改時間   touch -c file1.txt   如果file1.txt不存在,不創建文件   touch -r ref_file file1.txt    更新file1.txt的時間戳和ref+file相同   將參照文件 ref_file 相應的時間戳記的數值作為指定文件 file 時間戳記的新值   touch -t 0811142234.50 file1.txt 設定文件的時間錯為08年11月14日22點34分50秒       將參照文件 ref_file 相應的時間戳記的數值作為指定文件 file 時間戳記的新值       什麼是 touch 命令   眾所周知,每個文件都被附有時間戳。這個時間戳記包括訪問時間和修改時間。而 Touch 命令主要就是用來修改文件的訪問時間和修改時間。   為什麼我們需要使用 touch 命令   既然 touch 命令描述的是改變時間戳,那麼我們可能會想為什麼我們需要去改變時間戳呢?這個問題會引發我們的深思。然而,我想有個理由可以解釋為什麼我們需要使用它。如果你參加了一個全球范圍的開源項目,那麼時間戳可能變得很重要。編譯源代碼文件可能需要同一地區的時間戳。如果未統一,程序可能會編譯失敗。(譯注:有強迫症的同學也很喜歡這個命令——就看不得亂七八糟的時間,;>)   不帶任何選項下運行 touch   最簡單的使用 touch 命令。只需鍵入:   $ touch file_name   File_1.txt原來的時間戳是 12:42。在我們使用 touch 命令後,它改變為了 17:08。由此看出,默認情況下,touch 會將文件的時間戳改為當前時間。   只改變訪問時間   正如我們之前提到的,每個文件都附有訪問時間和修改時間。上面的時間戳是 17:08。我們可以看更多的細節。     我們發現訪問access時間和修改change時間的值是相同的都是 17:08:35 ,還有它們屬於同一時區 GMT +7。   如果現在我們要只改變訪問時間,我們需要使用-a選項。       $ touch –a file_1.txt   如你所見,訪問時間變為了 17:51:37 ,但是修改時間仍為17:08:35。[譯注:原文為 Change time(狀態改變時間)應是作者筆誤]   只改變修改時間(modify,change)   我們可以使用-m選項來實現。現在我們用file_2.txt作個示例。     $ touch –m file_2.txt   Touch -m option   現在修改時間從 12:42:20 改為了 17:57:20。請注意,當文件被訪問或修改時,狀態改變時間域的值總會對其記錄。   更改為自定義時間戳   -a和-m選項都會將文件的時間戳改為現在當前時間。當然我們也可以更改為自定義時間戳。使用-t選項實現。   從上面示例示例中的 file_2.txt,我們看出它的時間戳是:   訪問時間: 12:42:20   修改時間: 17:57:20   執行日期: 2014-01-14   假如我們想要將訪問時間和修改時間改為2014年1月12日 09:58:27。我們可以用下列命令來完成:   $ touch –t 201401120958.27 file_2.txt     -t 選項語法組成 :   [[CC]YY]MMDDhhmm [.SS](年前兩位,年後兩位,月,日,時,分,秒)       改變日期和時間的另一種方式   如果你覺得[[CC]YY]MMDDhhmm [.SS]格式不適合你,我們也可以使用 -d 選項。下面是-d選項使用的一個示例。   更改指定日期   舉例來說,我們有個名為 file_3.txt 的文件,它的相關屬性在下面的截圖中展示了。     現在我們要將日期2014年1月14日改為2013年12月20日。可以使用下列命令:   $ touch –d '10-december-2013' file_3.txt   不出意料,訪問時間和修改時間的日期已經改為了2013年12月10日。   改變時區   如果我們想改變指定GMT的時間,我們也可以使用-d選項。先讓file_3.txt 移回當前時間。   $ touch file_3.txt   不難發現 file_3.txt 的時區為 GMT +0700。要改為 GMT3 時區,我們只需要鍵入如下命令:   $ touch –的GMT3 file_3.txt   好的,現在時間已經改為了 10:00:00 AM。   結合參數下使用-d選項   還可以用很酷的方式使用-d選項。請觀察下面的圖片。     我們可以將單詞 next Sunday 和 GMT 3合成一個值,而 touch 命令仍然能識別它。日期已經改為了2014年1月21日,而當前的日期為2014年1月14日。   還有另一個-d選項的示例。首先,我們要將file3_3.txt重置到當前日期和時間。   $ touch file_3.txt 然後我們嘗試這個命令: $ touch –d '1 year ago 13:43:07' file_3.txt   太震撼了,Touch 甚至能識別單詞'1 year ago'。現在的日期以及時間已經改為了2013年1月14日,13:43:07。   [root@cai home]# touch –d '4 month ago 13:43:08' uuu   把uuu 這個文件的時間修改成4個月前的13:43:08       創建一個空文件   當你運行 touch 命令目標文件不存在時,touch 會創建一個同名的空文件。   $ touch file_10.txt   同時創建多個文件   你可以用空格將目標文件分割開來,以此來創建多個文件。   $ touch doc_10.txt doc_20.txt doc_30.txt   總結   如果你要處理關於文件或目錄的時間戳問題,那麼 Touch 會對你很有用的。一如既往得你也可以鍵入man touch或touch --help來顯示幫助頁面了解更多細節。       rm xxx 刪除文件   rm -rf 強制刪除文件   命令參數:       -f, --force    忽略不存在的文件,從不給出提示。       -i, --interactive 進行交互式刪除       -r, -R, --recursive   指示rm將參數中列出的全部目錄和子目錄均遞歸地刪除。       # touch -- -f   建立-f文件,因為f前面有-,所有要加轉義字符2個減號   # ls -l -- -f   查看-f文件,在-f前面加轉義字符2個減號。   -rw-r--r--. 1 root root 0 Nov 2 16:17 -f   # rm -rf -- -f   刪除-f文件,在-f前面加轉義字符2個減號。           2、創建目錄與刪除目錄       mkdir xxx 創建一個目錄;   mkdir  -p xxx/yyy 遞歸創建目錄;   rmdir  xxx/  刪除空目錄;   rm  -rf  XXX/  強制刪除非空目錄;   -p, --parents  可以是一個路徑名稱。此時若路徑中的某些目錄尚不存在,加上此選項後,   系統將自動建立好那些尚不存在的目錄,即一次可以建立多個目錄;    -v, --verbose  每次創建新目錄都顯示信息   #mkdir -p test2/test22 遞歸創建多個目錄    # mkdir -v test4  (創建新目錄都顯示信息)   mkdir: 已創建目錄 "test4"       # mkdir -vp test5/test5-1   mkdir: 已創建目錄 "test5"   mkdir: 已創建目錄 "test5/test5-1"   一個命令創建項目的目錄結構   # mkdir -vp scf/{lib/,bin/,doc/{info,product},logs/{info,product},service/deploy/{info,product}}   mkdir: 已創建目錄 "scf"   mkdir: 已創建目錄 "scf/lib"   mkdir: 已創建目錄 "scf/bin"   mkdir: 已創建目錄 "scf/doc"   mkdir: 已創建目錄 "scf/doc/info"   mkdir: 已創建目錄 "scf/doc/product"   mkdir: 已創建目錄 "scf/logs"   mkdir: 已創建目錄 "scf/logs/info"   mkdir: 已創建目錄 "scf/logs/product"   mkdir: 已創建目錄 "scf/service"   mkdir: 已創建目錄 "scf/service/deploy"   mkdir: 已創建目錄 "scf/service/deploy/info"   mkdir: 已創建目錄 "scf/service/deploy/product"       # tree scf/   scf/   |-- bin   |-- doc   |   |-- info   |   `-- product   |-- lib   |-- logs   |   |-- info   |   `-- product   `-- service    `-- deploy      |-- info       `-- product   12 directories, 0 files       3、拷貝文件與目錄   cp  /path1/xxx /path2/ yyy拷貝path1路徑下的xxx 文件到 路徑path2路徑下,並命名為yyy,如果yyy文件已經存在,則會覆蓋原文件,加上 -i 選項會詢問是否覆蓋;       cp -p  /path1/xxx /path2/ yyy 拷貝文件保留原文件的屬性;   cp -rf /path1/  /path2/  拷貝目錄path1的文件到目錄path2       cp -a  與 cp -dpr=all 相同   -d :若來源文件為連結文件的屬性(link file),則復制連結文件屬性而非檔案本身;   -b 或 --backup 刪除、覆蓋目的文件先備份,備份的文件或目錄亦建立為符號鏈接,並指向源文件或目錄鏈接的源文件或目錄。假如沒有加上這個參數,在復制過程中若遇到符號鏈接,則會直接復制源文件或目錄 -f 強行復制文件或目錄,不論目的文件或目錄是否已經存在 -i 覆蓋文件之前先詢問用戶       -p    或 --preserve 保留源文件或目錄的屬性,包括所有者、所屬組、權限與時間     用root來"cp -p"是可以的,這麼說,"cp -p"這個命令對於普通用戶來說是等同於直接"cp"了   --parents保留源文件或目錄的路徑, -r  或-R遞歸處理,將指定目錄下的文件與子目錄一並處理。   -l 或 --link   對源文件建立硬鏈接,而非復制文件 -s 或 --symbolic-link  對源文件建立符號鏈接,而非復制文件 -S <備份字尾字符串> 或 --suffix=<備份字尾字符串> 用"-b"參數備份目的文件後,備份文件的字尾會被加上一個備份字符串。默認的備份字尾符串是符號"~" -u 或 --update 使用這項參數之後,只會在源文件的修改時間(Modification Time)較目的文件更新時,或是名稱相互對應的目的文件並不存在,才復制文件  .復制文件,只有源文件較目的文件的修改時間新時,才復制文件 cp -u -v file1 file2   將文件file1復制成文件file2 cp file1 file2   采用交互方式將文件file1復制成文件file2 cp -i file1 file2   將文件file1復制成file2,因為目的文件已經存在,所以指定使用強制復制的模式 cp -f file1 file2   將目錄dir1復制成目錄dir2 cp -r dir1 dir2   同時將文件file1、file2、file3與目錄dir1復制到dir2    cp -r file1 file2 file3 dir1 dir2   復制時保留文件屬性 cp -p a.txt /tmp   復制時保留文件的目錄結構 cp   --parents   /var/tmp/a.txt  ./temp/   復制時產生備份文件 cp -b a.txt tmp/   指定備份文件尾標     cp -b -S _bak a.txt /tmp       4、剪切文件   mv  /path1/xx  /path2/yy  剪切path1路徑下的xx 剪切到 path2路徑下的yy, 如果path1與path2路徑相同,則將xx重命名為yy;   5、查看文件   cat xx  適合查看內容較少的文件;   more   less   more 與less相同的地方是都可以用空格鍵向下翻頁,所不同的是less允許上下鍵向上浏覽浏覽,more 則不行;
Copyright © Linux教程網 All Rights Reserved