linux入门之与文件有关的事
Posted www岩
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux入门之与文件有关的事相关的知识,希望对你有一定的参考价值。
1 linux的哲学思想之一切皆文件,文件的类型也分多种,请看以下详细说明。
文件类型:
-:普通文件
d: 目录文件 ,常用#cd命令进入。
b: 块设备 ,存储数据以供系统存取的接口设备,简单而言就是硬盘。
c: 字符设备 , 串行端口的接口设备。
l: 符号链接文件 , 相当于快捷方式。
p: 管道文件pipe ,用于解决多个程序同时存取一个文件时
s: 套接字文件 , 通常用在网络数据连接。
2 查看文件的类型
输入命令:
ll
得出以下结果:
输入命令:
file 文件名
常用选项: -b 列出文件辨识结果时,不显示文件名称
-f filelist 列出文件filelist中文件名的文件类型
-F 使用指定分隔符号替换输出文件名后默认的”:”分隔符
-L 查看对应软链接对应文件的文件类型
--help 显示命令在线帮助
得出结果如下:
输入命令:
stat
得出结果如下:
以上为三种查看文件类型的操作。
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入门之与文件有关的事的主要内容,如果未能解决你的问题,请参考以下文章
AngularJS入门教程之与服务器(Ajax)交互操作示例