linux入门之与文件有关的事

Posted www岩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux入门之与文件有关的事相关的知识,希望对你有一定的参考价值。

1  linux的哲学思想之一切皆文件,文件的类型也分多种,请看以下详细说明。

文件类型:

    -:普通文件

    d: 目录文件   ,常用#cd命令进入。

    b: 块设备  ,存储数据以供系统存取的接口设备,简单而言就是硬盘。

    c: 字符设备  , 串行端口的接口设备。

    l: 符号链接文件 , 相当于快捷方式。

    p: 管道文件pipe  ,用于解决多个程序同时存取一个文件时

    s: 套接字文件 , 通常用在网络数据连接。

2 查看文件的类型

输入命令:

ll

 

得出以下结果:

H7W`_ILHRZ3]82[Y[ZS4TZO

输入命令:

file  文件名

常用选项: -b 列出文件辨识结果时,不显示文件名称

-f filelist 列出文件filelist中文件名的文件类型

-F 使用指定分隔符号替换输出文件名后默认的”:”分隔符

-L 查看对应软链接对应文件的文件类型

--help 显示命令在线帮助

得出结果如下:

T7R{R)`@)MN~BWV$4UL{`2A

输入命令:

stat

 

得出结果如下:

VBP$_O{~R~`SI~]WW18C)AW

以上为三种查看文件类型的操作。

3  创建文件,复制文件

  *  touch file  若文件不存在,创建一个空文件;若文件存在,更新三个时间戳

   语法:

  

[root@localhost ~]# touch abc

 

 

 

   参数与选项:

   touch [OPTION]... FILE...

   -a 仅改变 atime和ctime 访问时间和元数据修改时间

   -m  仅改变 mtime和ctime  数据修改时间和元数据修改时间

   -t  [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的时间戳

   -c 如果文件不存在,则不予创建

 

     *  cp文件复制

   语法  :

    cp [OPTION]... SOURCE... DIRECTORY

  选项和参数:

    -i 覆盖前提示用户,若不加-i,则直接覆盖(前提没有alias)
     -r或-R  递归,如源包含目录,一定要递归才能复制
     -d 当复制的源是一个软链接时,复制出的文件,也是软链接,若不加d,则复制完整的源文件   
     -p = --preserv=mode,owner,time 保留原权限
     -v 复制的详细信息,每复制完一个文件,显示一行记录
         du -s  先查源大小,再查目标大小
     -f  强制复制
     -u 只在源比目标更新时复制
     --backup=numbered 在覆盖前自动备份,后缀为~数字~
     cp fstab{,.orig}  =  cp  fstab fstab.orig

*   移动和重命名文件

   移动文件语法:

     mv [OPTION]... SOURCE... DIRECTORY

    选项和参数:

      -i 覆盖前提示用户,若不加-i,则直接覆盖(前提没有alias)
      -f 强制覆盖

   删除文件语法:

    rm [OPTION]... FILE...

   常用选项:

       -i 删除前提示用户,若不加-i,则直接删除(前提没有alias)
       -f 强制删除

    取消删除文件的操作如下:

         \\rm
         /bin/rm
         \'rm\'
         "rm"

4    查看文件当前的状态

  文件分为metadata和data两种,涉及三个时间戳,分别为

  atime和mtime 和ctime

[root@localhost ~]# touch xp
[root@localhost ~]# stat xp
   File: `xp\'
   Size: 0             Blocks: 0          IO Block: 4096   regular empty file
Device: 802h/2050d    Inode: 145851      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-07-15 11:51:27.745384351 +0800
Modify: 2018-07-15 11:51:27.745384351 +0800
Change: 2018-07-15 11:51:27.745384351 +0800

access time:访问时间,atime,读取文件内容 ,访问文件时,atime时间发生变化

[root@localhost ~]# cat xp
[root@localhost ~]# stat xp
   File: `xp\'
   Size: 0             Blocks: 0          IO Block: 4096   regular empty file
Device: 802h/2050d    Inode: 145851      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-07-15 11:51:46.268370624 +0800
Modify: 2018-07-15 11:51:27.745384351 +0800
Change: 2018-07-15 11:51:27.745384351 +0800

modify time: 修改时间, mtime,改变文件内容(数据)

[root@localhost ~]# echo hello >xp
[root@localhost ~]# stst xp
-bash: stst: command not found
[root@localhost ~]# stat xp
   File: `xp\'
   Size: 6             Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d    Inode: 145851      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-07-15 11:51:46.268370624 +0800
Modify: 2018-07-15 11:53:28.486362586 +0800
Change: 2018-07-15 11:53:28.486362586 +0800

change time: 改变时间, ctime,元数据发生改变

[root@localhost ~]# chmod 777 xp
[root@localhost ~]# stat xp
   File: `xp\'
   Size: 6             Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d    Inode: 145851      Links: 1
Access: (0777/-rwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-07-15 11:51:46.268370624 +0800
Modify: 2018-07-15 11:53:28.486362586 +0800
Change: 2018-07-15 11:54:23.196394209 +0800

5   文件名的通配符

      * 匹配零个或多个字符

      ? 匹配任何单个字符

       ~ 当前用户家目录

       ~mage 用户mage家目录

      ~+ 当前工作目录

      ~- 前一个工作目录

     [0-9] 匹配数字范围

     [a-z]:字母

     [A-Z]:字母

     [yibo] 匹配列表中的任何的一个字符

     [^yibo] 匹配列表中的所有字符以外的字符
     [:digit:]:任意数字,相当于0-9

     [:lower:]:任意小写字母

     [:upper:]: 任意大写字母

     [:alpha:]: 任意大小写字母

     [:alnum:]:任意数字或字母

     [:blank:]:水平空白字符

     [:space:]:水平或垂直空白字符 文件名不可能包含回车,故此处使用与[:blank:]:效果相同

     [:punct:]:标点符号

    例题体现通配符的使用如下:

    1、显示/var目录下所有以l开头,以一个小写字母结尾,且中 间出现至少一位数字的文件或目录

            ls -d /var/l*[[:digit:]]*[[:lower:]]

   2、显示/etc目录下以任意一位数字开头,且以非数字结尾的 文件或目录

           ls -d /etc/[[:digit]]*[^[:digit:]]

   3、显示/etc/目录下以非字母开头,后面跟了一个字母及其 它任意长度任意字符的文件或目录

          ls -d /etc/[^[:alpha:]][[:alpha:]]*

   4、显示/etc目录下所有以m开头非数字结尾的文件或目录

          ls -d /etc/m*[^[:digit:]]

    5、显示/etc目录下,所有以.d结尾的文件或目录

          ls -d /etc/*.d

 

 

以上是关于linux入门之与文件有关的事的主要内容,如果未能解决你的问题,请参考以下文章

python语法入门之与用户交互,常用运算符

04-4 python语法入门之与用户交互运算符

AngularJS入门教程之与服务器(Ajax)交互操作示例

编程思维之与人类语言的思维差异(新手必看)

Linux(内核剖析):12---进程调度之与调度相关的系统调用

ifconfig源码分析之与内核交互数据