zoukankan      html  css  js  c++  java
  • Linux文件操作

    文件管理

    Linux文件的组成

    (inode)Linux文件由两部分组成:用户数据(user data)和元数据(metadata)

    用户数据:真正的文件内容存放的地方,即文件数据块(data block)

    元数据:存放一些文件的属性,如:文件名,inode(i节点),三time等

    inode:i节点是文件的唯一标识符,系统和程序是通过inode来找到文件的用户数据和数据块(stat可以查看i节点内容)

    文件的三time

    atime:(access time)显示文件被访问的最后的时间
    mtime: (modify time)文件内容被改变的最后时间
    ctime: (change time)inode内容被改变的最后一个时间,atime改变也会变化
    

    文件创建 修改 删除 移动 查看

    touch

    touch 文件路径
    
    可以一次创建多个文件
    touch 文件路径1 文件路径2
    
    touch命令   新建文件和修改文件或者文件的时间戳
    
    命令语法:
          touch  【选项】 【文件名】
    
    命令选项:
          -a  只修改文件的access(访问)时间.
          touch -a a
          -c  或--no-create  不创建不存在的文件。
          touch -c zx 如果zx文件不存在,就不会创建文件
          -d  使用指定的日期时间,而非现在的时间
          touch -d "5/30/2015" a 会修改改动和访问时间,不会更改最近改动时间
          -m 指修改Modify(修改)时间,而不修改access(访问)时间
          touch -m a
          -r  file  使用指定file文件的时间戳(access,modify)更新文件的时间戳(access,modify)
          touch -r a b
          -t  将时间修改为参数指定的日期,如:10011150代表10月1号11点55分
          touch -t 10011150
    

    rm

    rm命令  删除文件  
    
    命令语法  
      rm [options] name...  
    
    命令选项  
      -i 删除前逐一询问确认。(默认自带)
      -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。  (不推荐使用)
      -r 将目录及以下之档案亦逐一删除。
    

    mv

    文件改名
    mv命令  文件改名
    
    命令语法修改文件名:
          mv  old_file   new_file
    mv命令  文件移动
    
    文件移动
    命令语法:
    mv [选项] 源文件或目录       目标文件或目录
    
    命令选项
    -b:若需覆盖文件,则覆盖前先行备份。
    -i:若指定目录已有同名文件,则先询问是否覆盖旧文件;
    -f:force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
    -u:若目标文件已经存在,且 source 比较新,才会更新(update)
    
    拓展:mv src dST
        改名 dst是一个文件夹的时候  执行是移动
            dst不是一个文件夹的时候 执行改名
    

    ls

    -a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
    -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出 可以简写 ll
    -r 将文件以相反次序显示(原定依英文字母次序)
    -t 将文件依建立时间之先后次序列出
    -A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
    -F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
    -R 若目录下有文件,则以下之文件亦皆依序列出
    
    文件类型
    ls -l 可查看
    -  普通文件
    d 目录
    l 链接文件
    b 设备文件
    c 字符设备
    s 套接字文件
    p 管道文件
    
    linux 文件颜色意义
    绿色文件: 可执行文件,可执行的程序 
    红色文件:压缩文件或者包文件
    蓝色文件:目录
    白色文件:一般性文件,如文本文件,配置文件,源码文件等 
    浅蓝色文件:链接文件,主要是使用ln命令建立的文件
    红色闪烁:表示链接的文件有问题
    黄色:表示设备文件
    灰色:表示其他文件
    

    文件内容查看

    cp

    cp命令  拷贝文件
    
    命令语法  
      cp [options] 源文件或目录    目标目录
    
    cp [选项] 源路径 目标路径
    
    cp 源路径 目标路径  			拷贝单个文件
    cp -r 源路径 目标路径			拷贝文件夹
    
    命令选项  
      -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容  
      -d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。  
      -f:覆盖已经存在的目标文件而不给出提示。  
      -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。  
      -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。  
      -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。  
      -l:不复制文件,只是生成链接文件。
    
    #复制重命名
    cp zx1 zx2
    
    #复制重命名文件夹
    cp -rf zx1 zx2
    
    

    cat

    cat 命令用于连接文件并打印到标准输出设备上。
    显示文件全部内容,如果文件过大需要注意
    
    cat [选项] 文件路径
    
    cat 文件路径		显示文件内容
    cat -n 文件路径		显示文件内容,并显示行号
    
      命令语法  
           cat [选项列表] [文件列表]
      命令选项  
      -n 或 --number:        由 1 开始对所有输出的行数编号。  
      -b 或 --number-nonblank:    和 -n 相似,只不过对于空白行不编号。  
      -s 或 --squeeze-blank:        当遇到有连续两行以上的空白行,就代换为一行的空白行。  
      -v 或 --show-nonprinting:    使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。  
      -E 或 --show-ends :         在每行结束处显示 $。  
      -T 或 --show-tabs:         将 TAB 字符显示为 ^I。  
      -A, --show-all:        等价于 -vET。  
      -e:                等价于"-vE"选项;  
      -t:                等价于"-vT"选项;
    
    

    more

    more指令是基于vi编辑器的文本过滤器,以全屏的方式按页显示文本内容
    
    more指令中内置了很多快捷键,用起来很方便
    
    空格			向下翻一页
    Enter		 向下翻一行
    q			 立即离开
    Ctrl+F		 向下滚动一屏
    Ctrl+B		 向上滚动一屏
    =			 显示当前行号
    :f			 输出文件名和当前行号
    
    

    less

    比more更加强大,功能比more更过多
    
    less 文件路径
    
    空格				向下翻一页
    pagedown		  向下翻一页
    pageup			  向上翻一页
    /字符串		    向下查找[字符串],n下一个,N上一个
    ?字符串			向上查找[字符串],n下一个,N上一个
    q				  离开less
    
    
    head - 输出文件的开始部分
    
    命令语法  
          head [OPTION] [FILE]
    
    命令选项  
      -c, --bytes=SIZE          打印起始的SIZE字节  
      -n, --lines=NUMBER         显示起始的NUMBER行,而非默认的起始10行  
      -q, --quiet, --silent         从不显示给出文件名的首部  
      -v, --verbose             总是显示给出文件名的首部  
      --help             显示帮助后退出  
      --version             输出版本信息后退出
    
    

    tail

    tail - 输出文件的末尾部分
    
    命令语法  
          tail [OPTION]   [FILE]
    
    命令选项  
      -f 循环读取  
      -v 显示详细的处理信息  
      -c<数目> 显示的字节数  
      -n<行数> 显示文件的尾部 n 行内容
      
    tail -f可以用于监听文件增加
    
    

    文件夹操作

    新建文件夹:mkdir
    
    文件夹插卡:ls
    
    空文件夹的删除:rmdir
    
    不为空的文件夹的删除:rm -rf     递归删除
    
    文件夹拷贝:cp [-r -p -f]
    
    

    mv

    文件夹改名:mv 文件名 文件名
    mv zx.py wl.py
    mv home/zx.py home/wl.py
    
    文件夹移动:mv 文件名 路径/
    mv zx.py /root/
    mv home/zx.py /root/
    
    

    >指令/>>指令

    把前方语句的结果存进文件,若文件不存在会自动创建

    >:输出重定向			会覆盖原来文件内容
    >>:追加重定向		追加到文件末尾
    
    ll > a.txt
    cat b.txt >> a.txt
    
    

    9.5.13.2 示例

    mkdir

    mkdir  建立目录
    
    命令语法
          mkdir [选项] 目录
    
    命令选项
      -v   显示信息
      -p   递归创建
    
    

    rmdir

    rmdir 删除空目录
    
    命令语法
      rmdir  [options]  directory
    
    命令选项
      -p   递归删除空目录
      
    #要写全,如果删除掉wl2后,wl1为空,一并删除
    rmdir -p wl1/wl2
    
    
    ln软连接硬链接
    软链接也叫符号链接,类似于 windows 里的快捷方式,主要存放了链接其他文件的路径
    
    软连接
    ln -s 源文件或源文件夹 软连接名
    硬链接
    ln 源文件或源文件夹 软连接名
    
    

    文件打包压缩

    概念

    打包

    是将一大堆文件或目录变成一个总的文件

    压缩

    是将一个大的文件通过一些压缩算法变成一个小文件

    总结

    通过以上概念,我们可以推测出打包和压缩是经常一起用的,但是要注意区分概念

    tar

    必要参数

    参数 描述
    -A 或--catenate 新增压缩文件到已存在的压缩文件
    -B 或--read-full-records,读取数据时重设区块大小。
    -c 或--create,建立新的压缩文件
    -d 或-diff,记录文件的差别
    -r 或--append 新增文件到已存在的压缩文件的结尾部分
    -u 或--update 仅置换较压缩文件内的文件更新的文件
    -x 或--extrac,从压缩的文件中提取文件
    -t 或--list ,列出压缩文件的内容
    -z 或--gzip或--ungzip,通过gzip指令解压文件
    -j 通过bzip2指令解压文件
    -p 或--same-permissions 用原来的文件权限还原文件
    -Z 通过compress指令解压文件
    -N<日期格式> 或--newer=<日期时间> ,只将较指定日期更新的文件保存到备份文件里。
    -v 显示操作过程
    -l 文件系统边界设置
    -k 或--keep-old-files, 解压文件时,不覆盖已有的文件
    -m 或--modification-time ,解压文件时,不变更文件的更改时间
    -W 或--verify,压缩文件时,确认文件正确无误

    选择参数

    参数 描述
    -b 设置区块数目
    -C 切换到指定目录
    -f 指定压缩文件
    --help 显示帮助信息
    --version 显示版本信息

    打包-查看-解包

    #打包
    tar -cvf wl.tar wl1 wl2
    
    #查看
    tar -tf wl.tar
    
    #解包
    tar -xf wl.tar -C wl2
    -C 解包到指定目录
    
    

    gzip

    压缩快,但是压缩率低,只能压缩单个文件,一般配合tar使用

    #压缩,注意是直接把当前文件压缩,不会保留原文件
    gzip wl.tar
    #解压,解压完,源文件不在
    gunzip wl.tar.gz
    gzip -d wl.tar.gz -C home
    
    

    配合tar

    #压缩,cd到压缩文件目录下在压缩
    tar -zcvf wl.tar.gz wl1 wl2
    #解压
    tar -zxvf wl.tar.gz
    
    

    bzip2

    压缩慢,但是压缩率高

    #压缩
    bzip2 wl.tar
    #解压
    bunzip2 wl.tar.gz
    bzip2 -d wl.tar.gz
    
    

    配合tar

    #压缩
    tar -jcvf  wl.tar.gz wl1 wl2
    #解压
    tar -jxvf  wl.tar.gz
    
    

    zip和unzip

    zip 用于压缩文件, unzip 用于解压的,这个在项目打包发布中很有用的
    注意压缩文件夹的时候加-r , -d是指定解压的目录
    
    zip [选项] xxx.zip 被压缩内容			压缩文件或者目录
    	-r 								压缩目录
    
    unzip [选项] xxx.zip  			    解压文件	
    	-d 目录							指定压缩后的存放目录
    	
    zip -r my.zip zx zx1
    unzip -d /home my.zip
    
    

    信息筛选

    find

    find [范围] [选项]
    范围:指路径,不写默认从当前向下找,类似于windows的查找
    
    选项:
    -name 文件名		按文件名查找,支持正则
    -user 用户名		查找属于该用户的所有文件
    -size 			  按文件大小查找
    	+20M
    	-20M
    	20M
    	20K
    
    find /home -name *.txt
    find /home -name a.txt
    
    

    grep 指令 和 管道符号 |

    管道符:"|",表示将前一个命令的处理结果输出传递给后面的命令处理
    
    grep:过滤查找
    
    grep [选项] 过滤内容
    
    选项:
    -n		显示匹配行及行号
    -i		忽略字母大小写
    
    cat zx1 |grep -ni yes
    
    

    参考链接

    https://www.jianshu.com/p/9e9814471a1e

  • 相关阅读:
    Ubuntu20.04本地安装Redash中文版
    ubuntu设置root密码
    qmake设置生成文件分类
    QML对象的构造函数和析构函数
    QString使用split按照某字符进行分解
    Qt的qDebug直接打印不添加头文件
    C++宏定义中的#
    Qt设置生成的文件路径
    QWidget禁止最大化
    js-去掉回车和空格
  • 原文地址:https://www.cnblogs.com/zx125/p/11564241.html
Copyright © 2011-2022 走看看