Linux常用文件命令

时间:2021-09-13 08:43:27

查看文件类型:file    文件

查看文件信息状态:stat    文件

创建文件:touch(主要目的是修改文件的时间戳)

    -c:不创建任何文件

    -a:只修改访问时间   

    -m:只修改修改时间(比如文件名 )

      -t:修改时间    YYYYmmddHHMM.ss    例:touch -m -t 201803201530.22   Demo.java

删除文件:rm    文件    

    不使用别名形式删除方式为:\rm Hello.java

    -i:删除时给出提示

    -f:强行删除

    -r:删除目录及内容

复制文件:cp 源文件    目的文件

    -r(recursive):复制目录及其内容

    -f:强行复制,如果目的文件存在则强行覆盖(有-i是-f不生效)

    -i:复制时给出覆盖提示

    -p:复制时保留属主,属组,时间戳(时间戳自己测试会改变,需待详细验证

    -L:复制链接时默认复制链接的源文件

    -P:复制时不复制源文件,只复制链接本身

    -a:归档复制,常用于备份(保留源文件所有的属性,看不出与-p有啥区别,回头在查些资料

创建链接:ln(link)

    -s:创建软链接(类似Windows的快捷方式    权限为lrwxrwxrwx)

        例:ln -s Demo.java    aa.sh

    创建硬链接:ln    Demo.java    bb.sh

硬链接与复制的文件有何区别?

  1. 硬连接的文件可以同步更新(理解:相当于两个指针指向同一个内存地址)

  2. 硬连接不能夸分区

  3. 硬连接不能针对目录使用(理解:需要了解目录和文件的区别)

如何判断文件是否是硬链接?

ls-iinode):显示文件的索引节点号码,如果一样则是硬链接

移动文件:mv    源文件    目的地址

    -i:如果目标存在给出覆盖提示

    -f:强制覆盖(当有-i时候-f不发挥作用)

文件搜索:find

    -name:根据文件名查找        例:find    /root    -name    a.sh

    -iname:根据文件名查找,不区分大小写

    -size:根据文件大小查找 (默认单位为数据块,Linux默认数据块512k)   +n:大于    -n:小于    n:等于

        例:find    /root    -size    -10240

    -user:根据所有者查找        例:find    /home    -user    zhaowl

    -amin:根据访问时间查找(access)    例:find    /etc    -amin    -4(默认单位为分钟)

    -mmin:根据文件修改时间(modify)    例:find    /etc    -mmin    -4

    -cmin:根据文件属性修改时间(change)

    -type:根据文件类型查找

        f:文件            d:目录        l:软链接文件

        例:find    /etc    -type    l

    -inum:根据inode节点查找    例:find    /root    -inum    10201

    -exec    命令    {}    \;:对搜索结果执行操作

        例:find /etc -name  "init*" -exec  ls  -dl  {}  \;

    -a:两个条件同时满足    例:find /etc -size +2000 -a -size -3000

    -o:两个条件满足任意一个:    例:find /etc -name "init*" -o -size -20 -exec ls -dl {} \;

快速查找:locate

    快速查找库位置:/var/lib/mlocate/mlocate.db

    -i:不区分大小写

    更新快速查找库:updatedb