linux入门之与文件有关的事

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

-:普通文件

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

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

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

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

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

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

2 查看文件的类型

输入命令:

ll

得出以下结果:

H7W`_ILHRZ3]82[Y[ZS4TZO

输入命令:

file  command

得出结果如下:

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,读取文件内容

[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:]]*[[:alnum:]]*

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

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

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

     ls -d /etc/*.d



猜你喜欢

转载自www.cnblogs.com/w-s-y/p/9313238.html
今日推荐