linux文件管理必会知识
一、文件查看类命令
① less 选项 参数(文件名)
分屏显示文件内容(查看至文件的结尾不会退出,按q退出)
快捷键
ctrl+d 向下翻半屏
ctrl+u 向上翻半屏
回车键 向下翻一行
K键 向上翻一行
空格键 向下翻一整屏
b 向上翻一整屏
#G 跳转至第#行
★关键字查找:
/+关键子 从首部向尾部
n-next 下一个关键字
N 向上查找关键字
?+关键字 从尾部向首部
n 下一个(向上查找)
N 上一个(从下向上)--注:不要看起来好像迷迷糊糊,别只顾看,动手试试
②more 选项(很少用) 参数(文件名)
分屏显示文件内容(特性:查看至文件尾部自动退出)
注:k键和ctrl+u 不可用(这里指相对于上面less的快捷键)
③tail [选项] 参数(文件名)
查看文件的尾部多少行,注:不跟任何选项,指显示默认的行数(10行)
-n #或(-#)查看倒数的行数
-f 监视文件有没有新增内容(作用于 日志查看)
如上图:查看默认行数及设置显示5行
如上图为在伪终端/dev/pts/0 上开启监控
如上图为在伪终端/dev/pts/1 对文件file.log用echo来追加字符串“44”
如上图为在伪终端/dev/pts/1 上对文件用vim进行编辑,添加55,66两行
如上图:在伪终端/dev/pts/0上对文件的操作监视变化情况
结论:vim打开是一个文本副本的形式打开,而echo "ccc" >> file.log 直接把字符串追加到文件file.log(原始文件)中。所以-f是指监视文件本身。
④head [选项] 参数(文件名)
-n #或(-#) 查看首部的行数
注:不跟任何选项,指显示默认的行数(10行)
如上图,查看首部默认行数及设置显示6行
二、文件的类型
- :普通文件
d :目录文件
c : 字符设备文件
b : 块设备文件
l :链接文件
p : 管道文件
s : socket(套接字)文件
三、文件的组成
元数据(除了文件的内容以外,对文件的描述信息称为文件属性信息--元数据,时间戳也是元数据)
数据(文件内容)
时间戳 (3类时间)
最近一次被access的时间 access time <---->atime
最近一次被modify的时间 modify time <---->mtime
最近一次被modify的时间 (metadate)元数据被改变 change time<---->ctime
stat 文件名 (查看文件的元数据)
touch [选项] 参数(文件名) 文件的时间戳管理工具
-a 仅修改文件的atime
-m 仅修改文件的mtime
-c 不创建空文件
-t [[CC]YY]MMDDhhmm[.ss] 时间书写的格式
注:-at,-mt,-ct,都可以设置 -ta 不可以,因为后面-t 时间有具体值
[root@localhost tmp]# ls backups file.log man.config yum.log [root@localhost tmp]# stat file.log File: `file.log‘ Size: 26 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 3014664 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2015-04-03 20:14:11.326956761 +0800 Modify: 2015-04-03 20:14:11.326956761 +0800 Change: 2015-04-03 20:14:11.329956762 +0800
[root@localhost tmp]# touch -a -t 201504031010.10 file.log #修改文件的访问时间 -a [root@localhost tmp]# stat file.log Access: 2015-04-03 10:10:10.000000000 +0800 #此处省略其他信息(下同) Modify: 2015-04-03 20:14:11.326956761 +0800 Change: 2015-04-03 20:37:42.448971037 +0800
[root@localhost backups]# touch -mt 201504031111.11 file.log #修改文件的修改时间 -m [root@localhost tmp]# stat file.log Access: 2015-04-03 10:10:10.000000000 +0800 Modify: 2015-04-03 11:11:11.000000000 +0800 Change: 2015-04-03 20:39:55.134955727 +0800
[root@localhost tmp]# touch -c -t 201504031212.12 file.log #修改文件的改变时间 -c [root@localhost tmp]# stat file.log Access: 2015-04-03 12:12:12.000000000 +0800 (此时刻标注为时间1) Modify: 2015-04-03 12:12:12.000000000 +0800 Change: 2015-04-03 20:40:43.301964980 +0800
结论:atime和mtime都已经生效,而ctime并未生效,原因是文件的保护机制,所以ctime不会立即生效
紧接着上面的进行以下操作,看效果
[root@localhost tmp]# echo "aa" >> file.log [root@localhost tmp]# stat file.log #查看文件的元数据 Access: 2015-04-03 12:12:12.000000000 +0800 Modify: 2015-04-03 20:52:13.553956518 +0800 (此时刻标注为时间2) Change: 2015-04-03 20:52:13.553956518 +0800
[root@localhost tmp]# vim file.log [root@localhost tmp]# stat file.log Access: 2015-04-03 20:53:09.984956196 +0800 Modify: 2015-04-03 20:53:25.258950158 +0800 (此时刻标注为时间3) Change: 2015-04-03 20:53:25.260950347 +0800
结论:(vim 能改变所有的时间,echo就不能改变访问时间)
注:经常容易犯的错误,相对路径和绝对路径一定要分的清楚哦
四、文件复制命令
cp [选项] 参数1(源文件) 参数2 目录文件(文件、目录)
1、源文件为文件,目标文件是文件
(1)文件不存在,创建目标文件,且内容为源文件内容,如下图
(2)文件存在,内容被覆盖,如下图
2、源文件是文件,目标文件是目录(直接把文件拷贝到目标目录下(必须存在))如下图
3、源文件是目录,必须跟一个选项-r 才能把目录复制到目标目录下如下图
-r 复制目录,会实现递归复制
-d 不跟随符号指向的源文件(即复制的是符号链接文件,而非指向的文件)
-a 相当于-r + -d
-i 提示是否进行覆盖 默认别名已经设置了cp -i
-f 强制复制(不建议使用)
五、文件移动命令
mv [选项] 参数1(源文件) 参数2 目标文件(文件、目录)
1、源文件为文件,目标文件是文件
(1)文件不存在,创建目标文件,且内容为源文件内容,如下图
(2)文件存在,内容被覆盖,如下图
2、源文件是文件,目标文件是目录(直接把文件拷贝到目标目录下(必须存在))如下图
3、源文件是目录,把源目录复制到目标目录下如下图
-i 提示是否进行移动
-f 强制移动(不建议使用)
六、文件删除
rm [选项] 参数(文件名)
-r 递归删除文件,而且可以删除目录
-f 强制删除
-i 提示是否进行删除
注:创建一个回收站的安全机制,如下图
/tmp 创建一个目录backups,所有要删除的文件可以先放到这里。
注:个别命令的演示效果本文可能稍有忽略,希望大家自己动手练习,你会发现linux的奥妙所在!!!
本文出自 “行成于思” 博客,请务必保留此出处http://meaningful.blog.51cto.com/4543452/1630075
原文地址:http://meaningful.blog.51cto.com/4543452/1630075