zoukankan      html  css  js  c++  java
  • Python学习记录——Ubuntu(三)文件操作

    一.mkdir:创建目录

      mkdir 目录名  #创建目录

      mkdir -p 目录名1/目录名2/目录名3  #创建多层目录

    二.rm:删除文件(慎用,易引发程序崩溃

    1.参数:

    (1)rm 文件名   #只能删除文件,但是不能删除目录

    (2)rm -i 文件名  #会出现提示

    (3)rm -f 文件名  #强制删除

    (4)rm -rf 目录名  #强制删除目录

    三.mv:移动或重命名文件/目录

    1.示例:

    (1)mv 文件/目录名 新文件/目录名  #重命名文件/目录

    (2)mv  文件名 目录名  #将文件移至目录下

    (3)mv 文件/目录名 .  #移动至当前目录

    四.cp:复制文件

    1.示例:

    (1)cp 文件名 新文件名 #在当前目录复制文件并重新命名

    (2)cp 目录名/ 新目录名  #注意目录复制要加/

    (3)cp -a 文件名 新文件名  #复制文件,并且保留原有权限和所有者

    五.>:重定向(写文件)  

    (1)>   重定向,如果的文件存在,则覆盖文件内容,文件不存在时创建文件

    (2)>> 重定向,如果的文件存在,则向文件追加内容,文件不存在时创建文件

    (3)1>  标准正确输出,同上覆盖

    (4)1>> 标准正确输出,同上追加 

    (5)2> 标准错误输出,同上覆盖

    (6)2>> 标准错误输出,同上追加

    (7)&> 标准正确输出和标准错误输出,同上覆盖

    eg:cat 123.txt 1>a 2>b  #如果正确输出则a有内容b没有

    六、文件属性修改

    1.chmod:修改文件权限

    (1)chmod u(代表user用户)/g(代表group用户组)/o(代表others其他人)/a(代表所有)=rwx(读写执行的权限,没有的权限用-代替)./文件名  #修改文件权限

    (2)chmod  u(代表user用户)/g(代表group用户组)/o(代表others其他人)/a(代表所有)+/- rwx(读写执行的权限,没有的权限不写即可)./文件名  #可用加/减的方式修改权限

    (3)chmod 对应三位数字 ./文件名  #修改文件权限

    (4)也可以用数字代表权限:r:4,w:2,x:1     rwx:7,rw:6,rx:5

    2.chown:修改文件所有者和所有组

    (1)chown 名字 文件名  #更改所有者

    (2)chown :名字 文件名  #更改所有组

    (3)chown 名字:名字 文件名  #更改所有者和所有组

    七.ls:查看文件信息

    1.参数:

    (1)ls  #查看当前目录下可见的文件 

    (2)ls -a  #查看当前目录下所有文件,若文件前带.则为隐藏文件;其中.和..分别表示当前目录和父目录

    (3)ls -l #显示所有文件及详细信息

    (4)ls -l ./文件名  #显示该文件详细信息

      详细信息显示格式为:

      文件类型(-为普通文件,d为目录文件,b为块设备文件,c为字符设备文件,l为链接文件(例如快捷方式),p为管道文件,s为socket文件) 

        例如:-rwxrwxrwx,-为文件类型,r是否可读(目录中对应是否可以读取该目录下的文件名),w是否可写(目录中对应是否可以在目录下创建和修改文件),x是否可执行(目录中对应是否可以被搜索/能否进入该目录)

        3个一组,分别表示用户,用户组,其他人的文件操作权限

        ./执行一个文件时,用户对该文件必须有x权限

      数字 

      所有者 

      属于的用户组

      文件大小(默认是字节为单位的,可用ls -lh 改为用KB做单位,目录默认为4096字节)

      修改日期

      文件名

    (4)ls -lt #附加以时间排降序(若t后追加r,可改为升序)

    (5)ls -R  #遍历所有文件目录

    八.常用文件操作命令

    1.更改当前目录:

    (1)cd+地址 #更改目录至制定地址,如cd /home ;cd ~/桌面

    (2)cd ..  #返回当前目录的上一级目录

    (3)cd -  #返回到当前目录之前打开的目录

    (4)cd #回用户家目录

    2.touch 文件名  #将文件时间修改成当前时间,例如统一多个文件的时间以便合并

    3.cat 文件名  #查看文件内容

      cat -s 文件名  #将多个空行合并成一个空行,但若行内有空格,则该行不被合并

    4.tac 文件名  #从下往上输出文件内容

    5.sort  #排序

    (1)sort -r  #反向排序

    (2)sort -n  #使用纯数字排序

    (3)sort -f  #忽略大小写

    (4)sort -t  分隔符   #指定分隔符

    6.uniq  #忽略或报告重复行

      uniq -c  #进行计数

      uniq -u  #不显示重复行

      uniq -i  #不区分大小写

    7.cut #提取文本列

      cut -d 分隔符 -f 列数

      cut -c  #以字符为单位提取  如:cut -c 1,5提取第一和第五个字,cut -c 1-5提取第一到第五个字

    8.tee  #读取标准输入的数据,并将其内容输出成文件

    9.history  #列出历史命令

      history number  #显示最近多少条命令

      history !number  #执行第几条命令

    10.more/less 文件名  #分页显示,空格显示下一页,回车显示下一行,b回退,q退出

    11head/tail 文件名  #显示前/后10行文本

      tail -f 文件名  #实时监控文件变化,可用在日志文件监控上

    12.which 命令  #查命令在什么位置

    13.stat文件名  #用于查看文件信息:

    14.pwd   #查看当前目录

    1. alias #用于给命令起别名

      alias 别名='原名'  #如:alias la='ls -A'

      如果需要别名永久生效,需要保存到 .bashrc 文件

    16.source 文件名  #在当前bash环境下读取并执行FileName中的命令,该filename文件可以无"执行权限"

    17.echo  #可用于在屏幕上打印文件内容,echo -n不换行输出 

    18.df -Th  #以能显示的最大单位显示文件系统类型

    18.du -s(如果后面是目录,只显示一层) -h(以能显示的最大单位显示) 目录名  #显示目录的大小

    九.文件查找

    1.locate:

    (1)locate /etc/sh    # 搜索路径中含有/etc/sh的文件。

    (2)locate ~/a    # 搜索用户主目录下,所有以a开头的文件。

    (3)locate -i  #忽略大小写。

      locate查找文件时,如果数据库未及时更新,则无法找到文件,可使用sudo updatedb 命令手动更新数据库

    2.find:

    (1)使用方法: find path -option [-print ] [ -exec -ok command ] {} ;

    (2)根据文件名查找:

      find 目录 -name 文件名   #在目录里面搜索某文件名的文件

      find /home -name "*.txt"  #在家目录里搜索txt后缀的文件

      find /home -iname "*.txt"   #忽略大小写

    (3)根据文件类型查找:

      find 目录 -type 类型参数    f 普通文件  l 符号连接  d 目录  c 字符设备  b 块设备  s 套接字  p Fifo

    (4)根据目录深度查找:

      find . -maxdepth 3 -type f # 从当前目录查找,最大深度为3

      find . -mindepth 2 -type f # 最小深度为2

    (5)根据文件的权限或者大小名字类型进行查找:

      find 目录 -type f -size (+|-)文件大小 # +表示大于 -表示小于

      b —— 块(512字节) c —— 字节 w —— 字(2字节) k —— 千字节 M —— 兆字节 G —— 吉字节

    (6)按照时间查找:

      -atime(+|-)n # 此选项代表查找出n天以前被读取过的文件。

      -mtime(+|-)n # 此选项代表查找出n天以前文件内容发生改变的文件。

      -ctime(+|-)n # 此选项代表查找出n天以前的文件的属性发生改变的文件。

      -newer file # 此选项代表查找出所有比file新的文件。

      -newer file1 ! –newer file2 # 此选项代表查找比file1文件时间新但是没有file2时间新的文件。

      注意:

        n为数字,如果前面没有+或者-号,代表的是查找出n天以前的,但是只是一天之内的范围内发生变化的文件。

        如果n前面有+号,则代表查找距离n天之前的发生变化的文件。如果是减号,则代表查找距离n天之内的所有发生变化的文件。

        -newer file1 ! –newer file2中的!是逻辑非运算符

    (7)按照用户/权限查找: 

      -user 用户名:根据文件的属主名查找文件。

      -group 组名:根据文件的属组名查找文件。

      -uid n:根据文件属主的UID进行查找文件。

      -gid n:根据文件属组的GID进行查找文件。

      -nouser:查询文件属主在/etc/passwd文件中不存在的文件。

      -nogroup:查询文件属组在/etc/group文件中不存在的文件

      -perm 777: 查询权限为777的文件

    (8)查找时指定多个条件:

      -o:逻辑或,两个条件只要满足一个即可。

      -a:逻辑与,两个条件必须同时满足。

      find /etc -size +2M -a -size -10M

    (9)对查找结果进行处理:

      -exec shell命令 {} ;

      -ok shell命令 {} ; (推荐)

      其中-exec就是代表要执行shell命令,后面加的是shell指令,再后面的“{}”表示的是要对前面查询到的结果进行查询,最后的“;”表示命令结束。需要注意的是“{}”和“”之间是要有空格的。而-ok选项与-exec的唯一区别就是它在执行shell命令的时候会事先进行询问

      -print选项是将结果显示在标准输入上

    十.gedit:程序编写终端

      在文件开头写#! /usr/bin/env python3 #用于指定解释器为python3,这样指定以后文件可以以./文件名 方式执行

    十一.tar:压缩文件

    1.参数:

    (1)-c :建立一个压缩文件的参数指令(create 的意思);

    (2)-x :解开一个压缩文件的参数指令

    (3)-t :查看 tarfile 里面的文件

       特别注意 c/x/t 同时仅能存在一个,因为不可能同时压缩与解压缩。

    (4)-z :是否需要用 gzip 压缩

    (5)-j :是否需要用 bzip2 压缩(压缩率更高)

    (6)-v :压缩的过程中显示文件,这个常用,但不建议用在背景执行过程

    (7)-f :使用档名,在 f 之后要立即接文件名

    (8)-p :使用原文件的原来属性(属性不会依据使用者而变)

    (9)-P :可以使用绝对路径来压缩

    (10)-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中

    2.示例:

    (1)将当前目录下所有.txt文件打包并压缩归档到文件:this.tar.gz tar czvf this.tar.gz ./*.txt

    (2)将当前目录下的this.tar.gz中的文件解压到当前目录 tar xzvf this.tar.gz ./

    (3)将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar

      tar -cvf /tmp/etc.tar /etc  # 仅打包,不压缩

      tar -zcvf /tmp/etc.tar.gz /etc  # 打包后,以 gzip 压缩

      tar -jcvf /tmp/etc.tar.bz2 /etc # 打包后,以 bzip2 压缩

    (4)解压文件

      tar -xf a.tar.gz

      tar -xf a.tar.gz -C /tmp # 指定解包路径

  • 相关阅读:
    Python any()
    从 SQL Server 到 MySQL (一):异构数据库迁移
    sql server作业实现数据同步
    分布式异构系统的数据一致性架构实现
    实战:sqlserver 数据实时同步到mysql
    基于MySQL的高可用准实时的数据同步方案
    SQL Server数据同步的研究(单向/双向)
    YY 数据库平台化建设实践
    两台SqlServer数据同步解决方案
    热迁移、异构数据库迁移、传输性能 这些上云的难题阿里云都帮你解决了
  • 原文地址:https://www.cnblogs.com/zhoujianlin/p/8455867.html
Copyright © 2011-2022 走看看