美文网首页百人计划
第6章 文件目录操作命令

第6章 文件目录操作命令

作者: IT分享汇 | 来源:发表于2017-06-21 21:55 被阅读0次

    切换目录

    在 Linux 里面使用.表示当前目录,

    ..表示上一级目录

    -表示上一次所在目录,

    ~通常表示当前用户的home目录。

    使用pwd命令可以获取当前所在路径(绝对路径)。

    # 绝对路径

    $cd/usr/local/bin# 相对路径

    $cd../../usr/local/bin

    新建空白文件

    使用touch命令创建空白文件,关于touch命令,

    其主要作用是来更改已有文件的时间戳的(比如,最近访问时间,最近修改时间),但其在不加任何参数的情况下,只指定一个文件名,则可以创建一个指定文件名的空白文件(不会覆盖已有同名文件),当然你也可以同时指定该文件的时间戳,更多关于touch命令的用法,

    $ touchtest

    新建目录

    使用mkdir(make directories)命令可以创建一个空目录,也可同时指定创建目录的权限属性。

    创建名为“ mydir ”的空目录:

    $mkdirmydir

    使用-p参数,同时创建父目录(如果不存在该父目录),如下我们同时创建一个多级目录(这在安装软件、配置安装路径时非常有用):

    $mkdir-p father/son/grandson

    后面的目录路径,以绝对路径的方式表示也是可以的。

    2. 复制

    复制文件

    使用cp(copy)命令复制一个文件到指定目录。

    将之前创建的“ test ”文件复制到“ /home/shiyanlou/father/son/grandson ”目录中:

    $ cptestfather/son/grandson

    复制目录

    如果直接使用cp命令复制一个目录的话,会报错:

    要成功复制目录需要加上-r或者-R参数,表示递归复制,就是说有点“全部复制”的意思:

    $ cp -r father family

    删除

    删除文件

    使用rm(remove files or directories)命令删除一个文件:

    $ rmtest

    有时候你会遇到想要删除一些为只读权限的文件,直接使用rm删除会显示一个提示,如下:文件有写保护

    你如果想忽略这提示,直接删除文件,可以使用-f参数强制删除:

    $ rm-ftest

    删除目录

    跟复制目录一样,要删除一个目录,也需要加上-r或-R参数:

    $ rm -r family

    移动文件与文件重命名

    移动文件

    使用mv(move or rename files)命令移动文件(剪切)。将文件“ file1 ”移动到Documents目录:

    mv 源目录文件 目的目录:

    $ mkdir Documents  新建目录

    $ mv file1 Documents

    重命名文件

    将文件“ file1 ”重命名为“ myfile ”:

    mv 旧的文件名 新的文件名:

    $ mv file1 myfile

    批量重命名

    要实现批量重命名,mv命令就有点力不从心了,我们可以使用一个看起来更专业的命令rename来实现。不过它要用 perl 正则表达式来作为参数,关于正则表达式我们要在后面才会介绍到,这里只做演示,你只要记得这个rename命令可以批量重命名就好了,以后再重新学习也不会有任何问题,毕竟你已经掌握了一个更常用的mv命令。

    # 使用通配符批量创建 5 个文件:$ touch file{1..5}.txt# 批量将这 5 个后缀为 .txt 的文本文件重命名为以 .c 为后缀的文件:$ rename's/\.txt/\.c/'*.txt# 批量将这 5 个文件,文件名改为大写:$ rename'y/a-z/A-Z/'*.c

    简单解释一下上面的命令,rename是先使用第二个参数的通配符匹配所有后缀为.txt的文件,然后使用第一个参数提供的正则表达式将匹配的这些文件的.txt后缀替换为.c,这一点在我们后面学习了sed命令后,相信你会更好地理解。

    查看文件

    使用cat,tac和nl命令查看文件

    前两个命令都是用来打印文件内容到标准输出(终端),其中cat为正序显示,tac为倒序显示。

    标准输入输出:当我们执行一个 shell 命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),默认对应终端的键盘、标准输出文件(stdout)和标准错误输出文件(stderr),后两个文件都对应被重定向到终端的屏幕,以便我们能直接看到输出内容。进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。

    比如我们要查看之前从/etc目录下拷贝来的passwd文件:

    $ cat passwd

    可以加上-n参数显示行号:

    $ cat -n passwd

    nl命令,添加行号并打印,这是个比cat -n更专业的行号打印命令。

    这里简单列举它的常用的几个参数:

    -b : 指定添加行号的方式,主要有两种:-b a:表示无论是否为空行,同样列出行号("cat -n"就是这种方式)-b t:只列出非空行的编号并列出(默认为这种方式)-n : 设置行号的样式,主要有三种:-n ln:在行号字段最左端显示

    -n rn:在行号字段最右边显示,且不加 0

    -n rz:在行号字段最右边显示,且加 0

    -w : 行号字段占用的位数(默认为 6 位)

    使用more和less命令分页查看文件

    使用more命令打开passwd文件:

    $ more passwd

    打开后默认只显示一屏内容,终端底部显示当前阅读的进度。可以使用Enter键向下滚动一行,使用Space键向下滚动一屏,按下h显示帮助,q退出。

    less的使用基本和more一致

    使用head和tail命令查看文件

    head 头部文件tail尾部文件

    这两个命令,那些性子比较急的人应该会喜欢,因为它们一个是只查看文件的头几行(默认为 10 行,不足 10 行则显示全部)和尾几行

    $ tail /etc/passwd  默认显示文件尾10行

    甚至更直接的只看一行, 加上-n参数,后面紧跟行数:

    $ tail -n1/etc/passwd显示文件最后1行内容

    循环查看文件内容

    tail -f test.log

    用于一个以上的档案监视。用Ctrl+c来终止。。这可以让我们动态查看日志,达到实时监视的目的。

    查看文件类型

    前面我提到过,在 Linux 中文件的类型不是根据文件后缀来判断的,我们通常使用file命令查看文件的类型:

    $ file /bin/ls

    说明这是一个可执行文件,运行在 64 位平台,并使用了动态链接文件(共享库)。

    相关文章

      网友评论

        本文标题:第6章 文件目录操作命令

        本文链接:https://www.haomeiwen.com/subject/gstxcxtx.html