Liunx学习总结(二)--目录和文件管理

之前我们了解了什么是 liunx ,并且认识了它的目录结构,今天我们就来学习下如何进行目录和文件的管理。

创建目录

语法:

mkdir [-mp] 目录名称

选项与参数

-m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
-p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!

实例

  1. 创建多层级目录
[root@VM_0_15_centos /]# mkdir -p test/test1/test2/test3
  1. 通过 tree 命令查看
[root@VM_0_15_centos /]# tree test -l
test
`-- test1
    `-- test2
        `-- test3

3 directories, 0 files

删除目录

语法:

rmdir [-p] 目录名称

选项与参数

-p :连同上一级『空的』目录也一起删除
  1. 删除多层级目录
[root@VM_0_15_centos /]# cd test
[root@VM_0_15_centos test]# rmdir -p test1/test2/test3
  1. 通过 tree 命令查看
[root@VM_0_15_centos test]# tree test -l
test [error opening dir]
0 directories, 0 files

注:rmdir 仅能删除空的目录,非空目录需要使用 rm 命令来删除。

语法:

rm [-fir] 文件或目录

选项与参数

-f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
-i :互动模式,在删除前会询问使用者是否动作
-r :递归删除啊!最常用在目录删除了!这是非常危险的选项!!!

除了目录外,也可以删除文件哦!

创建文件

语法:

touch fileName

选项与参数

-c:强制不创建文件
-a:修改文件access time(atime)
-m:修改文件modification time(mtime)
-t:使用"[[CC]YY]MMDDhhmm[.ss]"格式的时间替代当前时间
-d:使用字符串描述的时间格式替代当前时间

示例

创建文件

[root@VM_0_15_centos test]# touch a.txt
[root@VM_0_15_centos test]# touch {a,b}_{d,c}

查看文件

[root@VM_0_15_centos test]# ll
total 0
-rw-r--r-- 1 root root 0 Aug  1 08:59 a_c
-rw-r--r-- 1 root root 0 Aug  1 08:59 a_d
-rw-r--r-- 1 root root 0 Aug  1 08:58 a.txt
-rw-r--r-- 1 root root 0 Aug  1 08:59 b_c
-rw-r--r-- 1 root root 0 Aug  1 08:59 b_d

文件/目录复制

语法:

cp [-apdriulfs] src dest # 复制单文件或单目录
cp [-apdriuslf] src1 src2 src3......dest_dir # 复制多文件、目录到一个目录下

选项与参数

-p: 文件的属性(权限、属组、时间戳)也复制过去。如果不指定p选项,谁执行复制动作,文件所有者和组就是谁。
-r或-R:递归复制,常用于复制非空目录。
-d:复制的源文件如果是链接文件,则复制链接文件而不是指向的文件本身。即保持链接属性,复制快捷方式本身。如果不指定-d,则复制的是链接所指向的文件。
-a:a=pdr三个选项。归档拷贝,常用于备份。
-i:复制时如果目标文件已经存在,询问是否替换。
-u:(update)若目标文件和源文件同名,但属性不一样(如修改时间,大小等),则覆盖目标文件。
-f:强制复制,如果目标存在,不会进行-i选项的询问和-u选项的考虑,直接覆盖。
-l:在目标位置建立硬链接,而不是复制文件本身。
-s:在目标位置建立软链接,而不是复制文件本身(软链接或符号链接相当于windows的快捷方式)。

文件/目录移动

语法

mv [-iuf] src dest # 移动单个文件或目录
mv [-iuf] src1 src2 src3 dest_dir # 移动多个文件或目录

选项与参数

--backup[=CONTROL]:如果目标文件已存在,则对该文件做一个备份,默认备份文件是在文件名后加上波浪线,如/b.txt~
-b:类似于--backup,但不接受参数, 默认备份文件是在文件名后加上波浪线,如/b.txt~
-f:如果目标文件已存在,则强制覆盖文件
-i:如果目标文件已存在,则提示是否要覆盖,这是alias mv的默认选项
-n:如果目标文件已存在,则不覆盖已存在的文件,如果同时指定了-f/-i/-n,则后指定的生效
-u:(update)如果源文件和目标文件不同,则移动,否则不移动

mv 默认已经是递归移动,不需要 -r 参数。

查看文件内容

cat

作用

正序输出一个或多个文件的内容。

语法

cat [OPTION]... [FILE]...

选项与参数

-n:显示所有行的行号
-b:显示非空行的行号
-E:在每行行尾加上$符号
-T:将TAB符号输出为"^I"
-s:压缩连续空行为单个空行

tac

作用

倒序输出一个或多个文件的内容。

语法

tac [OPTION]... [FILE]...

作用

打印前面的几行内容,默认是前十行。

语法

head [-n num] | [-num] [-v] filename

选项与参数

-n:显示前num行;如果num是负数,则显示除了最后|num|(绝对值)行的其余所有行,即显示前"总行数 - |num|"
-v:会显示出文件名

tail

作用

tail 与 head 刚好相反,显示后面的行,默认是后十行。

语法

tail [OPTION]... [FILE]...

选项与参数

-n:输出最后num行,如果使用-n +num则表示输出从第num行开始的所有行
-f:监控文件变化
--pid=PID:和-f一起使用,在给定PID的进程死亡后,终止文件监控
-v:显示文件名

less

作用

对文件或其它输出进行分页显示,可以使用 [pageup] [pagedown] 等按 键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。

语法

less [参数]  文件 

选项与参数

-b <缓冲区大小> 设置缓冲区的大小
-e  当文件显示结束后,自动离开
-f  强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g  只标志最后搜索的关键词
-i  忽略搜索时的大小写
-m  显示类似more命令的百分比
-N  显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-Q  不使用警告音
-s  显示连续空行为一行
-S  行过长时间将超出部分舍弃
-x <数字> 将“tab”键显示为规定的数字空格
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b  向后翻一页
d  向后翻半页
h  显示帮助界面
Q  退出less 命令
u  向前滚动半页
y  向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]:   向上翻动一页

文件比较

diff

作用

逐行对比,以文本的形式显示不同内容

命令格式

diff file_01 file_02 

vimdiff

作用

逐行对比,以图形的形式显示不同内容

命令格式

vimdiff  file_01 file_02 

退出

:qa! 	//不保存文件退出
wqa!	// 保存文件退出

文件查找

find

作用

查找指定文件

命令格式

find(选项) 起始目录 文件名

选项与参数

-amin<分钟>:查找在指定时间曾被存取过的文件或目录,单位以分钟计算;
-anewer<参考文件或目录>:查找其存取时间较指定文件或目录的存取时间更接近现在的文件或目录;
-atime<24小时数>:查找在指定时间曾被存取过的文件或目录,单位以24小时计算;
-cmin<分钟>:查找在指定时间之时被更改过的文件或目录;
-cnewer<参考文件或目录>查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
-ctime<24小时数>:查找在指定时间之时被更改的文件或目录,单位以24小时计算;
-daystart:从本日开始计算时间;
-depth:从指定目录下最深层的子目录开始查找;
-expty:寻找文件大小为0 Byte的文件,或目录下没有任何子目录或文件的空目录;
-exec<执行指令>:假设find指令的回传值为True,就执行该指令;
-false:将find指令的回传值皆设为False;
-fls<列表文件>:此参数的效果和指定“-ls”参数类似,但会把结果保存为指定的列表文件;
-follow:排除符号连接;
-fprint<列表文件>:此参数的效果和指定“-print”参数类似,但会把结果保存成指定的列表文件;
-fprint0<列表文件>:此参数的效果和指定“-print0”参数类似,但会把结果保存成指定的列表文件;
-fprintf<列表文件><输出格式>:此参数的效果和指定“-printf”参数类似,但会把结果保存成指定的列表文件;
-fstype<文件系统类型>:只寻找该文件系统类型下的文件或目录;
-gid<群组识别码>:查找符合指定之群组识别码的文件或目录;
-group<群组名称>:查找符合指定之群组名称的文件或目录;
-help或——help:在线帮助;
-ilname<范本样式>:此参数的效果和指定“-lname”参数类似,但忽略字符大小写的差别;
-iname<范本样式>:此参数的效果和指定“-name”参数类似,但忽略字符大小写的差别;
-inum<inode编号>:查找符合指定的inode编号的文件或目录;
-ipath<范本样式>:此参数的效果和指定“-path”参数类似,但忽略字符大小写的差别;
-iregex<范本样式>:此参数的效果和指定“-regexe”参数类似,但忽略字符大小写的差别;
-links<连接数目>:查找符合指定的硬连接数目的文件或目录;
-iname<范本样式>:指定字符串作为寻找符号连接的范本样式;
-ls:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出;
-maxdepth<目录层级>:设置最大目录层级;
-mindepth<目录层级>:设置最小目录层级;
-mmin<分钟>:查找在指定时间曾被更改过的文件或目录,单位以分钟计算;
-mount:此参数的效果和指定“-xdev”相同;
-mtime<24小时数>:查找在指定时间曾被更改过的文件或目录,单位以24小时计算;
-name<范本样式>:指定字符串作为寻找文件或目录的范本样式;
-newer<参考文件或目录>:查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
-nogroup:找出不属于本地主机群组识别码的文件或目录;
-noleaf:不去考虑目录至少需拥有两个硬连接存在;
-nouser:找出不属于本地主机用户识别码的文件或目录;
-ok<执行指令>:此参数的效果和指定“-exec”类似,但在执行指令之前会先询问用户,若回答“y”或“Y”,则放弃执行命令;
-path<范本样式>:指定字符串作为寻找目录的范本样式;
-perm<权限数值>:查找符合指定的权限数值的文件或目录;
-print:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称前皆有“./”字符串;
-print0:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为全部的名称皆在同一行;
-printf<输出格式>:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式可以自行指定;
-prune:不寻找字符串作为寻找文件或目录的范本样式;
-regex<范本样式>:指定字符串作为寻找文件或目录的范本样式;
-size<文件大小>:查找符合指定的文件大小的文件;
-true:将find指令的回传值皆设为True;
-typ<文件类型>:只寻找符合指定的文件类型的文件;
-uid<用户识别码>:查找符合指定的用户识别码的文件或目录;
-used<日数>:查找文件或目录被更改之后在指定时间曾被存取过的文件或目录,单位以日计算;
-user<拥有者名称>:查找符和指定的拥有者名称的文件或目录;
-version或——version:显示版本信息;
-xdev:将范围局限在先行的文件系统中;
-xtype<文件类型>:此参数的效果和指定“-type”参数类似,差别在于它针对符号连接检查。
posted @ 2019-08-23 11:10  MarkLogZhu  阅读(286)  评论(0编辑  收藏  举报