zoukankan      html  css  js  c++  java
  • 文件处理命令

    命令格式

    命令【-选项】【参数】

    例如:ls -la /etc

    说明:1)个别命令使用不遵循此格式

       2)当有多个选项,可以写在一起

       3)简化选项与完整选项  -a等价于--all  简化的一般用-,完整的一般用--

    目录处理命令ls

     ls(list)

    命令所在路径:/bin/ls

    执行权限:所有用户

    功能描述:显示目录文件

    语法:  ls [-ald] [文件或目录]

         -a  all,显示所有文件,包括隐藏文件(以.开头的文件是隐藏文件,要隐藏一个文件直接改文件名,前面加.)

         -l   long,显示详细信息

            

          详细信息包含七种信息:

            1)-  表示该文件的类型是一个文件,d开头表示这是一个目录,l开头表示这是一个软链接

              rw-------  不同用户对该文件的访问权限(r可读,w可写,x可执行)。前三个rw-表示所有者的访问权限,中间三个---表示用户组的访问权限,后三个---表示其他人的访问权限;-表示该类用户没有该访问权限,如rw-,表示该类用户对该文件可执行读写,但不可执行

              Linux中用户与文件之间有三种关系:

                所有者u(user),文件的创建者,一个文件只能有一个所有者,但是所有者的身份可以变更

                用户组g(group),一个用户的集合

                其他人o(other),除所有者和用户组的其他用户

            2)  1  文件的硬链接总数,表示文件被引用的次数

            3)  root  文件所有者

            4)  root  文件用户组

            5)  1280  文件大小,单位字节

            6)  Mar 27 04:50    文件最近一次被修改的时间

            7)  anaconda-ks.cfg  文件名或目录名

         -d  directory,查看目录属性,显示当前目录本身而不显示目录的内容,-d和-l选项一般会一起使用,用于查看某一目录的详细信息

         -h  human,这是一个通用命令,为了显示的人性化而设计,如

          

            文件大小以KB为单位显示,显示更加人性化

         -i  显示目录下文件的i node结点

    目录处理命令

    1.命令名称:mkdir(make directories)

    命令所在路径:/bin/mkdir

    执行权限:所有用户

    语法:mkdir -p[目录名]

    功能描述:创建新目录

         -p 递归创建,例如,mkdir -p /tmp/book/xiyou,如果book目录本身不存在,会先创建book目录,再创建xiyou子目录

         也可以同时创建多个目录,mkdir -p /tmp/book/xiyou /tmp/book/sanguo

         注意:不要在系统关键目录下随便创建目录,可以在自己的用户目录或者/tmp下创建

    2.命令名称:cd(change directory)

    命令所在路径:shell内置命令

    执行权限:所有用户

    语法描述:cd[目录]

    功能描述:切换目录

         cd ..  切换到上层目录

         cd.    当前目录

    3.命令名称:pwd(print working directory)

    命令所在路径:/bin/pwd

    执行权限:所有用户

    语法:pwd

    功能描述:显示当前目录的绝对路径

    4.命令名称:rmdir(remove empty directories)

    命令所在路径:/bin/rmdir

    执行权限:所有用户

    功能描述:删除目录

    5.命令名称:cp(copy)

    命令所在路径:/bin/cp

    执行权限:所有用户

    功能描述:复制文件或目录

    语法:cp [-rp] [原文件或目录][目标目录]

       可以一次复制多个文件,如cp /root/install.log /root/install.log.syslog /tmp

       复制之后给文件或目录重命名,cp /root/install.log /tmp/book/installed.log,文件复制后重命名为installed.log

       -r  复制目录

       cp -r /tmp/book/xiyou /root,复制xiyou目录到/tmp目录下

       -p  保留文件属性

       cp -p /root/install.log /tmp/book/xiyou,复制后两个文件属性一致

       两条文件详细信息一致,如果不用-p选项,文件操作时间不会一样

    6.命令名称:mv(move)

    命令所在路径:/bin/mv

    执行权限:所有用户

    功能描述:剪切文件、改名

    语法:mv[原文件或目录][目标目录]

       mv不像cp命令需要选项,且也可以同时操作多个文件或目录

       mv也可以剪切之后改名,与cp命令格式一样,如果剪切的目录是同一目录,就是执行了改名操作,如mv sanguo shuihu

    7.命令名称:rm(remove)

    命令所在路径:/bin/rm

    执行权限:所有用户

    功能描述:删除文件

    语法:rm [-rf] [文件或目录]

       -r  删除目录

       -i  强制确认

       -f  强制删除

       如果一个目录下有很多文件,要删除这个目录,可以加-rf选项,略过对每个文件的删除询问确认操作

    文件处理命令

    1.命令名称:touch

    命令所在路径:/bin/touch

    执行权限:所有用户

    功能描述:创建空文件

    语法:touch [文件名]

       理论上命名没有限制,但是命名过于奇葩会引发不可预知的错误和麻烦;如:Windows文件名中允许空格出现,Program Files,但是Linux中使用命令touch Program Files,会创建两个文件Program和Files文件;如果非要在文件命中出现空格,用双引号把文件名括起来,touch "Program Files",这样操作起来很麻烦,不推荐文件名中出现空格

       touch命名还可以用来更改文件的修改时间,而不改变文件的内容,语法touch [已存在的文件],如果只想改变文件的访问时间,使用-a选项,touch -a [已存在文件]

       ls -l 命令只会显示文件被修改的时间,ls -l --time=atime能够显示文件被访问时间

    2.命令名称:cat

    命令所在路径:/bin/cat

    执行权限:所有用户

    功能描述:显示文件内容,适合内容不长的文件使用

    语法:cat [-n] [文件名]

       -n  显示行号

    3.命令名称:tac

    命令所在路径:/usr/bin/tac

    执行权限:所有用户

    功能描述:反向列示文件内容,同样适用内容不长的文件

    语法:tac [文件名]

    4.命令名称:more

    命令所在路径:/bin/more

    访问权限:所有用户

    功能描述:分页显示文件内容

    语法:more [文件名]  如:more /etc/services

       space/f  翻页查看

       enter   逐行查看

       q/Q     退出查看

    5.命令名称:less

    命令所在路径:/usr/bin/less

    执行权限:所有用户

    功能描述:分页显示文件内容,支持向上翻页和搜索,搜索时直接输入关键字回车,搜索到的内容如果过多,可按n查看下一页的内容

    语法:less [文件名]

       less支持more所有的子命令

       pgUp   向上翻页

       pgDn   向下翻页

       上箭头    向上逐行查看

       下箭头    向下逐行查看

    6.命令名称:head

    命令所在路径:/usr/bin/head

    执行权限:所有用户

    功能描述:显示文件的前几行内容

    语法:head [-n] [文件名]

       -n 后面指明显示的行数,如果没有使用该选项,默认显示前十行

    7.命令名称:tail

    命令所在路径:/usr/bin/tail

    执行权限:所有用户

    功能描述:显示文件最后几行的内容

    语法:tail [-nf] [文件名]

       -n  后面指定要显示的行数,如果不使用该选项,默认显示最后十行

       -f  动态显示文件末尾内容,如检测操作日志,tail -f /var/log/messages

    链接命令

    命令名称:ln(link)

    命令所在路径:/bin/ln

    执行权限:所有用户

    功能描述:生成链接文件

    语法:ln [-s] [原文件][目标文件]

       -s  创建软链接

    例如:ln -s /etc/issue /tmp/issue.soft,创建文件/etc/issue的软链接/tmp/issue.soft

       ln /etc/issue /tmp/issue.hard,创建文件/etc/issue的硬链接/tmp/issue.hard

    软链接:类似于Windows中的快捷方式,只是源文件的一个符号文件。

        

         查看软链接的详细信息,可以发现软链接有以下特征:

          1)以字母l开头,表明这是软链接,且软链接对所有三种用户的权限是全开的,但是用户对软链接的执行权限并不代表对原文件的执行权限

          2)软链接只是原文件的符号文件,所以都很小,上述软链接只有10B

          3)软链接文件名后有箭头指向原文件

    硬链接:文件的带属性拷贝(cp -p)+同步更新操作

        

        查看硬链接文件和原文件的详细信息,发现除文件名不一致其余属性属性都一样,就好像对文件执行了cp -p /tmp/issue /tmp/issue.hard一样。

        但是如果我们更新了原文件的内容,硬链接文件的内容也会同步更新:

        

        echo [字符串] >> [目标文件],作用是向目标文件的文件尾追加字符串;同样,往硬链接文件添加内容,原文件也会同步更新:

        

        此时我们再查看软链接的文件内容:

        

        我们发现文件内容也实现了同步更新,这样的话软、硬链接不就没区别了?

        实际上不是的,软链接只是原文件的符号文件,相当于一个快捷方式,如果执行软链接,软链接会定位找到原文件来执行,所以我们查看的实际上还是原文件的内容;而硬链接时原文件的带属性拷贝+双向的同步操作,性质是不一样的。

        如果想更直白的区分硬链接和软链接,将原文件删除,再分别查看软硬链接的文件内容

        

        这就是软硬链接的区别,原文件如果被删除,软链接找不到原文件,但是硬链接依然可以访问

      硬链接的特征:

      1)是对原文件的cp -p +同步更新

      2)不能跨分区使用,但是软链接可以

      3)不能对目录执行操作

      4)软链接可以通过详细信息中是否以字母l开头,文件名是否指向原文件识别,硬链接可以通过i节点来识别

         

        硬链接和原文件的i节点是一样的,正是这个原因,所以硬链接和原文件可以实现同步更新;而软链接与原文件的i节点不一样

        因此,一个文件只能对应一个i节点,而一个i节点并不是只对应一个文件

  • 相关阅读:
    C macro : the " do { ... } while(0)" magic
    sscanf()函数
    poj-1200-hash-
    hduoj-1735 简单的贪心算法
    hduoj -2570-简单的贪心算法入门
    分治算法应用-最近点对的最小距离-hdu 1007 Quoit Design
    分治算法(转载)
    快速幂总结
    poj 1065 贪心算法
    toj ~3988~递归二叉树三种遍历的转换
  • 原文地址:https://www.cnblogs.com/qingyaxuan/p/6625001.html
Copyright © 2011-2022 走看看