天天看点

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,如需转载请自行联系原作者

继续阅读