天天看點

linux檔案系統、重定向及其常用指令總結

一、常用指令

1

2

3

4

5

6

7

8

9

<code>touch指令:</code>

<code>    </code><code>touch [OPTION]... FILE...</code>

<code>     </code><code>-a:atime </code>

<code>     </code><code>-m:mtime </code>

<code>     </code><code>-c:ctime</code>

<code>access、modify、change三個時間戳的差別:</code>

<code>Access:通路時間,atime,通過cat、more等讀取其内容</code>

<code>Modify:修改時間,mtime,改變檔案的内容 </code>

<code>Change:改變時間,ctime,改變檔案的中繼資料,即修改權限、屬組、屬主等</code>

使用stat指令可檢視檔案的三個時間戳如下:

<a href="http://s2.51cto.com/wyfs02/M00/85/21/wKioL1eawX3x5McLAAAyS42xzlg927.png" target="_blank"></a>

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

<code>[root@centos6 ~]</code><code># date</code>

<code>2016年 07月 31日 星期日 19:15:12 CST</code>

<code>[root@centos6 ~]</code><code># stat services</code>

<code>  </code><code>File: </code><code>"services"</code>

<code>  </code><code>Size: 0         Blocks: 0          IO Block: 4096   普通空檔案</code>

<code>Device: 803h</code><code>/2051dInode</code><code>: 5898398     Links: 1</code>

<code>Access: (0644</code><code>/-rw-r--r--</code><code>)  Uid: (    0/    root)   Gid: (    0/    root)</code>

<code>Access: 2016-07-22 14:40:03.027684266 +0800</code>

<code>Modify: 2016-07-22 14:23:57.227122945 +0800</code>

<code>Change: 2016-07-22 14:23:57.227122945 +0800</code>

<code>[root@centos6 ~]</code><code># touch -a services</code>

<code>Access: 2016-07-31 19:15:44.446454193 +0800</code>

<code>Change: 2016-07-31 19:15:44.446454193 +0800</code>

<code>[root@centos6 ~]</code><code># touch -m services</code>

<code>Modify: 2016-07-31 19:16:26.497212950 +0800</code>

<code>Change: 2016-07-31 19:16:26.497212950 +0800</code>

<code>[root@centos6 ~]</code><code>#</code>

<code>cp指令:</code>

<code>   </code><code>cp [OPTION]... [-T] SOURCE DEST</code>

<code>   </code><code>cp [OPTION]... SOURCE... DIRECTORY</code>

<code>     </code><code>cp [OPTION]... -t DIRECTORY SOURCE...</code>

<code>常用選項:</code>

<code>   </code><code>-r:遞歸複制目錄及内容的所有内容</code>

<code>   </code><code>-a:歸檔</code>

<code>   </code><code>-d:表示不跟蹤符号連結所指向的源檔案,直接複制連結檔案</code>

<code>   </code><code>-p:保持原檔案的屬性資訊</code>

<code>   </code><code>-f:強制覆寫</code>

<code>   </code><code>-v:顯示過程  </code>

<code>   </code><code>-R:遞歸複制目錄及内部的所有内容</code>

<code>   </code><code>-i:互動式</code>

<code>   </code><code>-preserv=[…] mode:權限  ownership:屬組 timestramp:時間戳</code>

1、  如果目标檔案不存在,則建立目标檔案把源檔案的内容複制到建立的目标檔案中。

<a href="http://s2.51cto.com/wyfs02/M02/85/21/wKioL1eaw_qSTp4XAAAreWYpyrY539.png" target="_blank"></a>

2、  如果目标檔案存在,則提示覆寫目标檔案的内容

<a href="http://s4.51cto.com/wyfs02/M00/85/21/wKioL1eaxFCh4KRIAAAb72glXUg021.png" target="_blank"></a>

如下則表示不提示使用者是否覆寫:\cp chen.txt /testdir/test /usr/bin/cp chen.txt /testdir/test                       

<code>mv指令:  </code>

<code>  </code><code>常用選項:</code>

<code>    </code><code>-i:互動式</code>

<code>    </code><code>-f:強制</code>

<code>rm指令:</code>

<code>    </code><code>常用選項:    </code>

<code>        </code><code>-i:互動式</code>

<code>     </code><code>-f:強制</code>

<code>     </code><code>-r:遞歸</code>

<code>tree指令:</code>

<code>    </code><code>-d: 隻顯示目錄</code>

<code>    </code><code>-L level:指定顯示的層級數目 tree –L 2 /etc/</code>

<code>    </code><code>-P pattern: 隻顯示由指定pattern比對到的路徑</code>

<code>    </code><code>-p:顯示權限</code>

<code>mkdir 建立目錄 </code>

<code>    </code><code>-p: 存在于不報錯,且可自動建立所需的各目錄;</code>

<code>    </code><code>-v: 顯示詳細資訊</code>

<code>    </code><code>-m MODE: 建立目錄時直接指定權限;</code>

<code>rmdir 删除空目錄 </code>

<code>    </code><code>-p: 遞歸删除父空目錄</code>

<code>    </code><code>rm -r 遞歸删除目錄樹</code>

<code>檔案可以包含多種類型的資料</code>

<code>檢查文檔案類型,然後确定适當的開放指令或應用程式使用 </code>

<code>file [options]&lt;</code><code>filename</code><code>&gt;... </code>

<code>Option:</code>

<code>    </code><code>-b列出檔案辨識結果時,不顯示檔案名稱。</code>

<code>    </code><code>-c詳細顯示指令執行過程,便于排錯或分析程式執行形</code>

<code>    </code><code>-f列出檔案中檔案名的檔案類型</code>

<code>    </code><code>-F使用指定分隔符号替換輸出檔案名後預設的”:”分隔符 </code>

<code>    </code><code>-i輸出mime類型的字元串 </code>

<code>    </code><code>-L檢視對應軟連結對應檔案的檔案類型</code>

<code>    </code><code>-z嘗試去解讀壓縮檔案的内容 --help顯示指令線上幫助</code>

二、重定向

<code>标準輸入輸出:</code>

<code>程式:指令+資料 讀入資料:Input輸出資料:Output </code>

<code>打開的檔案都有一個fd: file descriptor (檔案描述符)</code>

<code>Linux給程式提供三種I/O裝置</code>

<code>标準輸入(STDIN)-0 預設接受來自鍵盤的輸入</code>

<code>标準輸出(STDOUT)-1 預設輸出到終端視窗</code>

<code>标準錯誤(STDERR)-2 預設輸出到終端視窗</code>

<code>I/O重定向:改變預設位置</code>

<code>支援的操作符号包括: </code>

<code>&gt; 把輸出重定向到檔案</code>

<code>2&gt; 把錯誤輸出重定向到檔案</code>

<code>&amp;&gt; 把所有輸出重定向到檔案 </code>

<code>&gt; 檔案内容會被覆寫</code>

<code># set -C: 禁止将内容覆寫已有檔案,但可追加 </code>

<code>強制覆寫:&gt;| # set +C: 允許覆寫 </code>

<code>&gt;&gt; 原有内容基礎上,追加内容</code>

<code># set -C: 禁止将内容覆寫已有檔案,但可追加 強制覆寫:&gt;| </code>

<code># set +C: 允許覆寫 </code>

(1)如何建立/testdir/dir1/x, /testdir/dir1/y,/testdir/dir1/x/a, /testdir/dir1/x/b, /testdir/dir1/y/a, /testdir/dir1/y/b

mkdiri –p /testdir/dir1/{x/{a,b},y/{a,b}}

(2)如何建立/testdir/dir2/x, /testdir/dir2/y,/testdir/dir2/x/a, /testdir/dir2/x/b

mkdir  -pv /testdir/dir2/{x/{a,b},y}

(3)如何建立/testdir/dir3, /testdir/dir4,/testdir/dir5, /testdir/dir5/dir6, /testdir/dir5/dir7

mkdir –p /testdir/dir{3,4,5/dir{6,7}}

mkdir –p /testdir/{dir3,dir4,dir5/{dir6,dir7}}

(4)使用别名指令,每日将/etc/目錄下所有檔案, 備份到/testdir/下獨立的新目錄下,并要求新目錄 格式為 backupYY-mm-dd ,備份過程可見

alias cp=’cp –av /etc /testdir/backup`date +%F`’

(5)先建立/testdir/rootdir目錄,再複制/root所有 下檔案到該目錄内,并要求保留原有權限

cp /root/ -R --preserv=mode/testdir/rootdir 或者:cp -av /etc /testdir/backup$(date)

本文轉自chengong1013 51CTO部落格,原文連結:http://blog.51cto.com/purify/1831626,如需轉載請自行聯系原作者

繼續閱讀