Linux 文件与目录管理
一、目录与路径
1、绝对路径和相对路径
绝对路径:一般有根目录/写起,例如/user/share/doc 这个目录
相对路径:不是有/写起,例如有/user/share/doc 要到 /user/share/man 下面时,‘cd ../man’
2、目录的相关操作
cd:切换目录
pwd:显示当前目录
mkdir:新建一个新的目录
rmdir:删除一个空的目录
mkdir -p /test/test/test 新建多重目录 rmdir [-p] dirname 连上层空目录一起删除 rmdir [-r] dirname 删除不为空的目录
3、文件与目录管理
3.1 查看文件与目录:ls
-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-b 把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出。
-c 输出文件的 i 节点的修改时间,并以此排序。
-d 将目录象文件一样显示,而不是显示其下的文件。
-e 输出时间的全部信息,而不是输出简略信息。
-f -U 对输出的文件不排序。
-g 无用。
-i 输出文件的 i 节点的索引信息。
-k 以 k 字节的形式表示文件的大小。
-l 列出文件的详细信息。
-m 横向输出文件名,并以“,”作分格符。
-n 用数字的 UID,GID 代替名称。
-o 显示文件的除组信息外的详细信息。
-p -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通
文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套
接字(sockets)。
-q 用?代替不可输出的字符。
-r 对目录反向排序。
-s 在每个文件名后输出该文件的大小。
-t 以时间排序。
-u 以文件上次被访问的时间排序。
-x 按列输出,横向排序。
-A 显示除 “.”和“..”外的所有文件。
-B 不输出以 “~”结尾的备份文件。
-C 按列输出,纵向排序。
-G 输出文件的组的信息。
-L 列出链接文件名而不是链接到的文件。
-N 不限制文件长度。
-Q 把输出的文件名用双引号括起来。
-R 列出所有子目录下的文件。
-S 以文件大小排序。
-X 以文件的扩展名(最后一个 . 后的字符)排序。
-1 一行只输出一个文件。
3.2 复制、移动与删除:cp,rm,mv
文件复制命令cp
命令格式:cp [-adfilprsu] 源文件(source) 目标文件(destination)
cp [option] source1 source2 source3 ... directory
参数说明:
-a:是指archive的意思,也说是指复制所有的目录
-d:若源文件为连接文件(link file),则复制连接文件属性而非文件本身
-f:强制(force),若有重复或其它疑问时,不会询问用户,而强制复制
-i:若目标文件(destination)已存在,在覆盖时会先询问是否真的操作
-l:建立硬连接(hard link)的连接文件,而非复制文件本身
-p:与文件的属性一起复制,而非使用默认属性
-r:递归复制,用于目录的复制操作
-s:复制成符号连接文件(symbolic link),即“快捷方式”文件
-u:若目标文件比源文件旧,更新目标文件
如将/test1目录下的file1复制到/test3目录,并将文件名改为file2,可输入以下命令:
cp /test1/file1 /test3/file2
文件移动命令mv
命令格式:mv [-fiv] source destination
参数说明:
-f:force,强制直接移动而不询问
-i:若目标文件(destination)已经存在,就会询问是否覆盖
-u:若目标文件已经存在,且源文件比较新,才会更新
如将/test1目录下的file1复制到/test3 目录,并将文件名改为file2,可输入以下命令:
mv /test1/file1 /test3/file2
文件删除命令rm
命令格式:rm [fir] 文件或目录
参数说明:
-f:强制删除
-i:交互模式,在删除前询问用户是否操作
-r:递归删除,常用在目录的删除
如删除/test目录下的file1文件,可以输入以下命令:
rm -i /test/file1
二、文件内容查询
1、查看文件内容
在Linux系统下,有很多命令可以查看文本文件的内容:
cat:从第一行开始显示全部的文本内容;
cat demo.txt 显示demo.txt文件全部内容 cat -b demo.txt 显示demo.txt文件全部内容,非空的行输出行号,空行会输出,但不标记行号 cat -n demo.txt 显示demo.txt文件全部内容,所有行都输出行号
tac:从最后一行开始,显示全部分文本内容,与cat相反;
tac demo.txt
从最后一行开始,倒序输出demo.txt的内容。
nl:显示文本时,可以输出行号;
nl demo.txt 显示文件内容,顺便输出行号,默认情况下空行不记录行号 nl -b a demo.txt b a #空行也输出行号 b t #默认设置 n ln ##行号最左方显示 n rn ##行号最右方显示,且不加0(然并卵,我的机器上依然显示在左边) n rz ##行号最右方显示,且加0(再次然并卵,但加了0了,如下图所示) w ##设置行号字段占用的位数
more:按页显示文本内容;
more demo.txt
按一下空格则往下翻一页
按一下Enter则往下翻一行
按一下B键往上翻一页
不能往上一行一行的翻回去了
:f 可以显示文件名和现在的行数
q退出more
less:与more差不多,也是按页显示文本内容,区别是less可以一行一行的回退,more回退只能一页一页回退;
less demo.txt
more命令的所有按键less都支持
↑↓箭头可以实现一行一行的上下翻
PageDown/PageUp可以实现一页一页的上下翻
head:从头开始显示文件指定的行数;
head demo.txt 默认只显示文件的前10行文本内容 head -n 6 demo.txt -n 6 参数指定显示文件的前6行 head -n -4 demo.txt -n -4 负数表示除去文件结尾的4行,其他的从头开始的所有行都显示出来
tail:显示文件指定的结尾的行数,但每一行的位置还是原文件中的位置,不会像tac那样与原文件相反。
tail demo.txt 默认只显示从文件最后一行开始的10行文本内容 tail -n 5 demo.txt -n 5 参数指定显示文件的最后5行 tail -n -5 demo.txt **-n -5**tail命令不支持负数,执行结果同-n 5
vi: NB的Linux文本编辑器。
vi demo.txt 进入Normal模式查看文本 i 进入Insert模式插入内容,编辑文本 nG n代表行号,在Normal模式输入nG则定位到第n行 :set number 在Normal模式输入则显示文本行号,空行也会显示行号 ESC 退出Insert模式至Normal模式 :wq 在Normal模式下保存退出。w保存;q退出;可以单独使用
2、修改文件时间或创建新文件:touch
touch [-acdmt] 文件 参数: -a:修改访问时间 -c:修改文件的时间,若该文件不存在则不创建新闻界 -d:后面可以接欲修改的日期而不用目前的日期,也可以使用 --date=“时间或日期” -m:仅修改mtime -t:后面可以接欲修改的时间而不用目前的时间,格式为[YYMMDDhhmm]