• Linux常用命令(3)-文件和目录管理


    (1)、Linux 文件权限和目录配置
    Linux 文件分三种身份 owner、group、others。 三种权限 read、write、execute
    #ls -al
    drwxr-xr-x   1     root   root  4230  2012-09-12 17:21 jdk-7u7
    对应文件权限  连接数    用户组  用户 文件大小  最后修改日期      文件名
    其中[d] 表示为目录
       [-] 表示为文件 
    文件类型和权限三个为一组,总共三组,其中第一组是文件所有者权限,第二组是用户组权限,第三组是其它用户权限,每一组都有[rwx]三个参数组合。[r]代表读,[w]代表写,[x]代表可执行如果没有权限则是[-],也可以用数字表三r:4 w:2 x:1
    改变文件属性和权限
    chgrp:改变文件所属用户组 chgrp [-R] users install.log  [-R] 表示递归更噶,包括子目录下的所有文件以及目录
    chown:改变文件所有者  chown [-R] oracle:oracle install.log
    chmod:改变文件权限  文件的身份和权限需要累加的,比如[-rwxrwx---],
          对应owner = rwx = 4+2+1 = 7
             group  = rwx = 4+2+1 = 7
             others = --- = 0+0+0 = 0
          所以权限数字是770 
    chmod [-R] 770 文件和目录
    权限的增加和移除
    比如要增加一个可执行权限
    chmod a+x 文件和目录,对所有用户加上可执行权限,同理chmod a-x 对所有用户去掉可执行权限
    可选项[a,o,g,u]

    (2)、文件和目录的创建,删除,查找,复制,粘贴,
    #ls|wc -l 统计文件和目录个数
    #pwd -P。显示当前目录(路径),[P] 显示正确的文件,而不是连接文件(windows 里面的快捷方式)的路径
    #mkdir -m 777 test1。新建目录,并且赋予这个目录777的权限。
    #mkdir -P test1/test2 目录默认只能一层一层创建,加上[P] 系统会自动创建test1,test1/test2
    #rmdir -P test1/test2。默认只能一层一层删除目录,并且目录必须为空,[P]系统会一次删除多层。如果被删除的目录不为空,需要使用下面的命令。
    #rm -r test2。将目录下所有的东西都删除。
    #rm -rf test2。将目录下所有的东西都删除包括test2目录。
    #rm -rf !(Rbeijing.MID | Rbeijing.MIF)  这两个命令结合删除Rbeijing.MID 和Rbeijing.MIF以外的文件。
    #ls | xargs -n 10 rm -fr ls 删除大量琐碎文件
    #cp -a /var/test1 /var/test2 复制文件test1到test2。[a]复制的源数据和目标数据,权限和身份时间和当前用户一模一样。 [r]是可以复制目录的。[i]询问用户已经存在的文件复制是否覆盖
    #scp 远程文件拷贝
    比如要把当前一个文件copy到远程另外一台主机上,可以如下命令。
    #scp /home/daisy/full.tar.gz root@172.19.2.75:/home/root
    如果想反过来操作,把文件从远程主机copy到当前系统,也很简单。
    #scp root@/full.tar.gz 172.19.2.75:/home/root/full.tar.gz home/daisy/full.tar.gz
    #cat -n test 查看文件内容,[n] 显示行号。
    #find -name test.pdf 查找test.pdf文件
    #find /TRS -name protect  查找TRS目录下所有的protect目录
    -type  查找某一类型的文件
    b - 块设备文件。
    d - 目录。
    c - 字符设备文件。
    p - 管道文件。
    l - 符号链接文件。
    f - 普通文件。
    # find -type d  查找目录
    #mv 移动文件/或者重命名命令
    mv 1.txt desfile把1.txt文件移动到desfile目录里,类似剪切
    mv 1.txt 2.txt 把1.txt文件命名为2.txt
    #dd if=1.txt of=2.txt 把1.txt的内容拷贝到2.txt文本文件里面,且支持块拷贝
    #grep 在文本中查找文字
    -c:只输出匹配行的计数。
    -n:显示匹配行及行号。
    - v:查找不包含匹配项的行
    比如:
    $ grep ‘test’ d*            #显示所有以d开头的文件中包含 test的行。
    $ grep -vn "48" data.doc            #输出所有不包含48的行
    $ grep -i "ab" data.doc        #输出所有含有ab或Ab的字符串的行
    $ grep –e "abc|efg"  文件名  //从文件内容查找包含abc或者efg的字符串
    $grep "17071" 20120406.txt | grep "2012-04-06 06:28:08" | grep "word2"  //查找既满足17071,2012-04-06 06:28:08 ,word2三个字符串的行
    #more 
    -n 行数 指定每屏显示的行数 
    + 行号 从指定行号开始显示
    #tail
    1.要显示 notes 文件的最后十行,输入:
    tail notes
    2.要指定从 notes 文件末尾开始读取的行数,输入:
    tail  -n 20 notes
    #wc -l 目录 统计文件个数
    - c 统计字节数。
    - l 统计行数。
    - w 统计字数。
    档案与文件系统的打包压缩

    (3)、档案与文件系统的打包压缩
    a、压缩指令
    在Linux下面,压缩过的文件的扩展名主要有*.tar, *.tar.gz,*.gz
    *.gz        gzip 程序压缩的档案; 
    *.tar       tar 程序打包的数据,并没有压缩过; 
    *.tar.gz    tar 程序打包的档案,并且做了压缩;
    *.tgz       tar 打包压缩的档案。

    b、打包指令
    #tar -cvf file.tar file  //打包
    #tar -cvzf file.tar.gz file  //打包并且压缩
    tar -cvfz 05.tgz  /mnt/ctb/data/traffic/backup/2014/05 //打包并且压缩
    #tar -xvf eclipse-jee-juno-linux-gtk.tar.gz //解压缩包
    可选参数[c]  create a new archive
    [v]  verbosely list files processed,处理过程中输出相关信息
    [f]  use archive file or device ARCHIVE,压缩的文件名
    [z]  --gzip, --gunzip, --ungzip   filter the archive through gzip,压缩的格式

    [x]  extract files from an archive,从归档文件中解出文件

  • 相关阅读:
    JavaScript 奇怪又实用的姿势又增加了六个
    GUAVA本地缓存01_概述、优缺点、创建方式、回收机制、监听器、统计、异步锁定
    阿里巴巴内部纯享的这份SpringBoot+VUE全栈开发实战手册,绝了
    实时人眼追踪、内置3D引擎,联想ThinkVision裸眼3D显示器创新四大应用场景
    Flink SQL --- 窗口聚合
    [SpringMVC笔记] SpringMVC-14-SSM整合-异常处理器
    unity 手写板 截取游戏画面 识别手写文字 全家桶
    java单例的几种实现方式
    LeetCode - #55 跳跃游戏
    python学习笔记(3)—— 数据结构
  • 原文地址:https://blog.csdn.net/eeeeety6208/article/details/127400070