文件和目录管理

文件和目录管理

文件查看类命令

  • cat:打印输出的文件内容
语法: cat 选项 参数
选项:    n或-number:有1开始对所有输出的行数编号;
        -b或--number-nonblank:和-n相似,只不过对于空白行不编号;
        -s或--squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行;
        -A:显示不可打印字符,行尾显示“$”        -e:等价于"-vE"选项;
        -t:等价于"-vT"选项;
参数:指定要打印输出的文件
实例:
    cat m1 (在屏幕上显示文件ml的内容)
    cat m1 m2 (同时显示文件ml和m2的内容)
    cat m1 m2 > file (将文件ml和m2合并后放入文件file中)
  • tac:倒序打印输出文件内容
语法:tac 选项 参数
选项:     -b, --before                  在行前而非行尾添加分隔标志
          -r, --regex                   将分隔标志视作正则表达式来解析
          -s, --separator=字符串        使用指定字符串代替换行作为分隔标志
参数:指定打印输出的文件
实例: 
    # cat test
        1234
        abcd

    # rev test
        4321
        dcba

    # tac test
        abcd
        1234
  • head : 显示文件开头前几行内容
语法:head 选项 参数
选项: -n:显示文件前n行的内容;
        -c<字符数>:指定显示头部内容的字符数;
        -v:总是显示文件名的头信息;
        -q:不显示文件名的头信息。 
参数:指定显示文件
实例:
    # head /etc/passwd   #默认,显示开头前10行
    # head -n 5 /etc/passwd   #显示开头前5行
    # head -q -n 5 file1 file2 file3   #显示多个文件开头前5行,并且不显示文件名的文件头
    # head -c -3 /etc/passwd   #显示从0到倒数第3行的字符。
  • tail: 显示文件末尾内容
语法:tail 选项 参数
选项:   --retry:不断尝试打开文件,需和 -f 合用
        -c n:显示文件末尾n个字节内容
        -f :在文件末尾追加数据
        -n 5:显示文件末尾5行内容
        --pid=PID:与-f合用,表示在进程ID,PID死掉之后结束.
        -q: 从不输出给出文件名的首部
        -s: 与-f合用,表示在每次反复的间隔休眠S        -v, --verbose 总是输出给出文件名的首部  
参数: 指定文件名
实例:
    tail file (显示文件file的最后10行)
    tail +20 file (显示文件file的内容,从第20行至文件末尾)
    tail -c 10 file (显示文件file的最后10个字符)
  • more: 基于vi的文本过滤器,用于分页显示文本,只能用于向后浏览
语法:more 选项 参数
选项:   -n:指定每屏显示的n行;
        -d:显示“[press space to continue,'q' to quit.]”和“[Press 'h' for instructions]”;
        -c:清屏;
        -s:将多个空行压缩成一行显示;
        -u:禁止下划线;
        +n:从n行开始显示。
参数: 指定显示文件名
实例:
    # more -dc file     # 在显示之前先清屏,并且在屏幕的最下方显示完核的百分比
    # more -c -10 file  # 在显示之前先清屏,每10行显示一次,

文件内部操作:
    Space键:显示文本的下一屏内容。
    Enier键:只显示文本的下一行内容。
    斜线符|:接着输入一个模式,可以在文本中寻找下一个相匹配的模式。
    H键:显示帮助屏,该屏上有相关的帮助信息。
    B键:显示上一屏内容。
    Q键:退出命令。    
  • less: 类似more的文本过滤器,但是可以向前向后浏览,man手册默认使用less
语法:less 选项 参数
选项:   -e:文件内容显示完毕后,自动退出;
        -f:强制显示文件;
        -g:不加亮显示搜索到的所有关键词,仅显示当前显示的关键字,以提高显示速度;
        -l:搜索时忽略大小写的差异;
        -N:每一行行首显示行号;
        -s:将连续多个空行压缩成一行显示;
        -S:在单行显示较长的内容,而不换行显示;
        -x<数字>:将TAB字符显示为指定个数的空格字符。
参数: 指定打开文件
实例:
        # less test       #查看文件
        # ipconfig |less  #常用方式,分页显示ipconfig输出内容
文件内部操作:
        b 向后翻一页
        d 向后翻半页
        h 显示帮助界面
        Q 退出less 命令
        u 向前滚动半页
        y 向前滚动一行
        空格键 滚动一页
        回车键 滚动一行 
  • stat:显示文件的状态或文件系统状态
语法:stat 选项 参数
选项:   -L:支持符号连接;
        -f:显示文件系统状态而非文件状态;
        -t:以简洁方式输出信息;
参数:指定文件名
实例: 
        [root@localhost ~]# ls -l myfile            #显示文件的简单信息
        -rw-r--r-- 1 root root 0 2010-10-09 myfile

        [root@localhost ~]# stat myfile             #显示文件的详细信息           
        file: “myfile”
        Size: 0               Blocks: 8          IO Block: 4096   一般空文件
        Device: fd00h/64768d    Inode: 194805815   Links: 1
        Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
        Access: 2018-05-09 22:22:35.000000000 +0800      #访问时间,atime,读取文件内容
        Modify: 2018-05-09 20:44:21.000000000 +0800      #修改时间,mtime,修改文件内容
        Change: 2018-05-09 20:44:21.000000000 +0800      #改变时间,ctime,元数据发生改变
  • touch:创建新的文件或更新文件访问时间
语法:touch 选项 参数
选项:     -a:或--time=atime或--time=access或--time=use  只更改存取时间;
        -c:或--no-create  不建立任何文件;
        -d:<时间日期> 使用指定的日期时间,而非现在的时间;
        -f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题;
        -m:或--time=mtime或--time=modify  只更该变动时间;
        -r:<参考文件或目录>  把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同;
        -t:<日期时间>  使用指定的日期时间,而非现在的时间;
参数:指定文件名
实例:
        # touch test     #将testp的档案时间改为当前时间,或文件不存在建之
        # touch -c -t 05061803 test  #将档案时间改为,5月6日18点3分
        # touch -r abc test        #将test档案改成跟abc一样

文件管理类工具

  • cp:复制文件
语法:cp 选项 参数
选项:   -d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
        -f:强行复制文件或目录,不论目标文件或目录是否已存在;
        -i:覆盖既有文件之前先询问用户;
        -l:对源文件建立硬连接,而非复制文件;
        -p:保留源文件或目录的属性;
        -R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
        -s:对源文件建立符号连接,而非复制文件;
        -u:使用这项参数后只会在源文件的更改时间较目标文件更新时或文件不存在,才复制文件;
        -S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
        -b:覆盖已存在的文件目标前将目标文件备份;
        -v:详细显示命令执行的操作。 
参数: 
        源文件:制定源文件列表。默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用-R选项;
        目标文件:指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录。
实例:
        # cp -u -v file1 file2   #复制文件,只有源文件较目的文件的修改时间新时,才复制文件

        # cp file1 file2    #将文件file1复制成文件file2

        # cp -i file1 file2   #采用交互方式将文件file1复制成文件file2

        # cp -f file1 file2   #将文件file1复制成file2,因为目的文件已经存在,所以指定使用强制复制的模式

        # cp -R dir1 dir2    #将目录dir1复制成目录dir2

        # cp -R file1 file2 file3 dir1 dir2    #同时将文件file1、file2、file3与目录dir1复制到dir2

        # cp -p a.txt tmp/   #复制时保留文件属性

        # cp -P  /var/tmp/a.txt  ./temp/    #复制时保留文件的目录结构

        # cp -b a.txt tmp/    #复制时产生备份文件

        # cp -b -V t   a.txt /tmp     #复制时产生备份文件,尾标 ~1~格式

        # cp -b -S _bak a.txt /tmp    #指定备份文件尾标  
  • mv: 移动或重命名文件 可以看作cp+rm
语法:mv 选项 参数
选项:     --backup=<备份模式>:若需覆盖文件,则覆盖前先行备份;
        -b:当文件存在时,覆盖前,为其创建一个备份;
        -f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;
        -i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件同名,则询问用户是否覆盖目标文件。
            用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。
        -S<后缀>:为备份文件指定后缀,而不使用默认的后缀;
        --target-directory=<目录>:指定源文件要移动到目标目录;
        -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
参数:
    源文件:源文件列表。
    目标文件:如果“目标文件”是文件名则在移动文件的同时,将其改名为“目标文件”;
    如果“目标文件”是目录名则将源文件移动到“目标文件”下。
实例:
        # mv f1 f2    #将f1重命名为f2
        # mv /etc/ .  #将etc下的所有文件备份到当前文件    
  • rm:删除文件或目录
语法:rm 选项 参数
选项:   -d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
        -f:强制删除文件或目录;
        -i:删除已有文件或目录之前先询问用户;
        -r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
        --preserve-root:不对根目录进行递归操作;
        -v:显示指令的详细执行过程。
参数:指定文件或目录,如果是目录,则必须加上-r或者-R选项
实例:
        # rm -i test example      #交互式删除当前目录下的文件test和example
            Remove test ?n(不删除文件test)
            Remove example ?y(删除文件example)
        # rm -rf /    # 这是一个非常邪恶的命令
  • rename:批量修改文件名
语法:rename 选项 参数
选项: 
        -n    操作预览,在不更改文件名称情况下,显示执行后的结果
        -f    强制执行
参数: 
        原字符串:将文件名需要替换的字符串;
        目标字符串:将文件名中含有的原字符替换成目标字符串;
        文件:指定要改变文件名的文件列表。
rename支持通配符
        ?  可替代单个字符
        *  可替代多个字符
        [charset]  可替代charset集中的任意单个字符
实例:
        # rename "s/AA/aa/" *          #把文件名中的AA替换成aa
        # rename 's/^/bak_/' *.bin     #给当前目录下的.bin后缀文件加上bak_前缀
        # rename 's/\.bin$//' *        #批量删除当前目录下所有文件的.bin 后缀
        # rename 's/A-Z/a-z/' *        #修改当前目录所有文件名为小写

目录管理类的命令:

  • mkdir:建立一个目录
语法:mkdir 选项 参数
选项: -m, --mode=模式       设置权限模式(类似chmod),而不是rwxrwxrwx 减umask
      -p, --parents         若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录
      -v, --verbose         每次创建新目录都显示信息
      -Z, --context= CTX     将每个创建的目录的SELinux 安全环境设置为CTX
参数:目录名
实例:
    # mkdir aaa   #创建目录
    # mkdir -m a=rw bbb   #创建指定属性的目录
    # mkdir -p 111/abc   #创建目录,父目录存在,建之
  • rmdir:用来删除空目录
语法:rmdir 选项 参数
选项:  -p 或 --parents:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除;
        --ignore-fail-on-non-empty:此选项使rmdir命令忽略由于删除非空目录时导致的错误信息;
         -v 或 -verboes:显示命令的详细执行过程;
参数:要删除的目录名
实例:
    # rmdir test            #删除test目录,注意必须是空目录
    # rmdir -p a/b/c        #删除指定目录及其上级文件夹

猜你喜欢

转载自blog.csdn.net/lv8549510/article/details/80245834