四。文件管理:
不外乎 对文件的增删改查, 对文件内容的增删改查。
1. 新建: touch [选项][文件名]
-a 只修改文件的 access(访问)时间。 (硬性修改)
-c 或 --no-create 不创建不存在的文件。
-d 使用指定的时间,而非现在的时间。 (只能修改年月日的时间, touch -d 2019-6-21 a.txt , 修改时只是修改 atime 和 mtime。 ctime 自动变化)
-m 只修改 Modify(修改)时间, 而不修改 access(访问)时间
-r file 使用指定 file 文件的时间戳 (access, modify) 更新文件的时间戳(access, modify)
-t 将时间参数修改为指定的日期, 如: 10011150代表 10月8号11点55分
[root@python 桌面]# touch a.txt 创建一个文件
[root@python 桌面]# touch a b c d 一次创建多个文件。
文件创建之后linux存储时,分为两部分: inode 节点、block块。 文件的源数据都会存在 i 节点中, 文件的内容存在block块中。
stat 查看,某个文件 i节点下的内容。
[root@python 桌面]# stat a.txt
文件:"a.txt"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:9821483 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2019-06-21 16:50:49.129699858 +0800
最近更改:2019-06-21 16:50:49.129699858 +0800
最近改动:2019-06-21 16:50:49.129699858 +0800
创建时间:-
文件在创建之初有三个时间 atime 访问时间、 ctime修改源数据的时间、 mtime修改文件内容的时间。
atime: 显示的是 文件中的数据最后被访问的时间,比如系统进程直接使用或者通过一些命令和脚本简介的使用
mtime: 文件内容发生变化 mtime 才会发生变化。
ctime: 存储的是 inode 节点中的源数据发生改变时,ctime就会改变。(只是访问的话这个不会变) 文件发生改变,这个时间也会发生改变。
2. 删除: rm
语法 rm[options] name...
-i 删除前逐一询问
-f 即使原档案属性设置为只读, 也会直接被删除,无需逐一确认
-r 讲目录及以下的所有档案 逐一删除。(倒着递归删除)
所以 rm -rf 这个命令,能不用就别用吧。 这个东西你连后悔的机会都么得。
3. 改名: mv (移动和改名)
语法:mv[options] 源文件或目录 目标文件或目录
-b 若需要覆盖文件,则覆盖前先备份再覆盖。(备份时会在原文件名后加一个 ~ 这个文件,只能在文本界面查看。 cat)
-i 若指定目录已有同名文件,则先询问是否覆盖旧的文件。
-f force 强制的意思,如果目标文件已经存在,不会询问而是直接覆盖文件。
-u 若目标文件已经存在, 并且 source 比较新,才会更新(update). (判断mtime 和ctime,源文件的时间 比目标文件的时间 要新。)
mv old_file new_file # 这里 old_file 后面如果跟的是一个文件名,那就是要改名字。 如果跟的是一个路径那么就是移动的意思。
4. 查看: ls -l 或者 ll
- 普通文件
d 目录
l 链接文件
b 设备文件(一般都是 实实在在存在的设备)
c 字符设备 (一般都是虚拟设备)
s 套接字文件
p 管道文件
[root@python ~]# ll
-rw-r--r--. 1 root root 36 5月 19 16:16 a.txt
drwxr-xr-x. 2 root root 30 5月 17 18:37 tex
就是最前面的这个 字段。
linux文件颜色意义:
绿色文件: 可执行文件,可执行程序
红色文件: 压缩文件或者包文件
蓝色文件: 目录
白色文件: 一般性文件, 如文本文件,配置文件,源码文件等。
浅蓝色文件: 链接文件,主要是使用 ln 命令建立的文件。
红色闪烁: 表示链接的文件有问题。
黄色: 表示设备文件
灰色: 表示其他文件
5. 拷贝: cp 命令
cp[options] 源文件或目录 目标目录
-a 通常在赋值目录时使用, 保留链接、文件属性、并复制目录下的所有内容。
-d 复制时保留链接。 这个链接相当于windows中的快捷方式
-f 覆盖已经存在的目标文件,而不用给出提示
-i 于 -f 相反。 再覆盖目标文件时 给出提示。 要求用户确认是否覆盖。
-p 除复制文件的内容外,还会把修改时间 和 访问权限也一并复制到新的文件中。(连带着inode节点的信息也会,一并拷贝过去)
-r 若给出源文件是一个 目录文件。 此时复制该目录下所有的子目录和文件
-l 不复制文件,只是生成链接文件。
五,文件内容查看:
1.cat 用于链接文件并打印到标准输出设备上。
cat [options] [files]
-n or --number 由1开始对所有输出的行数 进行编号
-b or --number-nonblank 和 -n相似,只不过对于空白行不进行编号
-s or --squeeze-blank 当遇到由连续两行以上的空白行时,就代换为一行的空白行。
-v or --show-nonprinting 使用 ^ 和 M- 符号, 除了 LFD 和 TAB 之外
-E or --show-ends 在每行结束处显示 $
-T or --show-tabs 讲 Tab 字符显示为 ^|
-A or --show-all 等价于 -vET
-e 等价于 -vE
-t 等价于 -vT
2. head 输出文件的 开始部分
head [option][file]
-c --bytes=SIZE 打印起始的size 字节
-n --lines=NUMBER 显示起始的 NUMBER行, 而非默认的起始10行
-q --quiet, --silent 从不显示给出文件名的首部
-v --verbose 总是显示给出文件的首部
--help 显示帮助后退出
--version 输出版本信息后退出
3. tail 这个命令和 head相反。 打印的是文件的 末尾的部分。
tail [option][file]
-f 循环读取 (滚动输出, 比如你想要查看某个web程序的日志文件,就可以用这个命令。 有写入就会输出到屏幕,)
-v 显示详细的处理信息
-c <数目> 显示字节数
-n <行数> 显示文件的尾部 n 行内容。
延申:
tail -n +5 file_name 从文件的第5行开始,打印到末尾。