Linux 文件与目录管理
一 处理目录常用命令
ls(列出目录)
list简写, 类似于DOS下的dir命令
语法:
ls [-aAdfFhilnrRSt] 目录名称
ls [--color={never,auto,always}] 目录名称
ls [--full-time] 目录名称选项:
- -a:显示指定目录下所有子目录与文件,包括隐藏文件,同-all(常用)
- -l:长数据串列出,包含文件的属性与权限等等数据;(常用)
- -h:配合-l以人性化的方式显示文件大小
- -d:仅列出目录本身,而不是列出目录内的文件数据(常用)
与DOS下的文件操作类似,在UNIX/LINUX中,同样允许使用特殊字符来同时引用多个文件名,这些特殊字符被称为通配符。
cd(切换目录)
cd是 Change Directory 的缩写,这是用来变换工作目录的命令
语法:
cd [相对路径或绝对路径]
注意:如果路径是从根路径开始的,则路径的前面需要加上 “ / ”,如 “ /mnt ”,通常进入某个目录里的文件夹,前面不用加 “ / ”
pwd (显示目前所在的目录)
pwd是 Print Working Directory 的缩写,也就是显示目前所在目录的命令
语法:
pwd [-P]
选项:
- -P :显示出确实的路径,而非使用连结 (link) 路径,注意是大写
示例:
[admin@localhost ~]$ cd /var/mail # 注意,/var/mail是一个连结档 [admin@localhost mail]$ pwd /var/mail [admin@localhost mail]$ pwd -P /var/spool/mail [admin@localhost mail]$ ls -ld /var/mail lrwxrwxrwx. 1 root root 10 3月 12 21:37 /var/mail -> spool/mail # 因为 /var/mail 是连结档,连结到 /var/spool/mail # 所以,加上 pwd -P 的选项后,会不以连结档的数据显示,而是显示正确的完整路径
mkdir (创建新目录)
mkdir 是make directory的缩写
语法:
mkdir [-mp] 目录名称
选项:
- -m :配置文件的权限,直接配置,不需要看默认权限 (umask)
- -p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来
示例:
[admin@localhost mail]$ cd /home/admin [admin@localhost ~]$ mkdir test [admin@localhost ~]$ mkdir -p test1/test2/test3 # 递归创建 [admin@localhost ~]$ mkdir -m 741 test2 # 指定权限 [admin@localhost ~]$ ll 总用量 4 drwxrwxr-x. 2 admin admin 6 3月 13 14:32 test drwxrwxr-x. 3 admin admin 19 3月 13 14:32 test1 drwxr----x. 2 admin admin 6 3月 13 14:34 test2
注意:新建目录的名称不能与当前目录中已有的目录或文件重合,并且创建者必须对当前目录具有“写”权限
rmdir (删除空的目录)
语法:
rmdir [-p] 目录名称
选项:
- -p :连同上一级“空的”目录也一起删除
示例:
[admin@localhost ~]$ ll drwxrwxr-x. 2 admin admin 6 3月 13 14:32 test drwxrwxr-x. 3 admin admin 19 3月 13 14:32 test1 drwxr----x. 2 admin admin 6 3月 13 14:34 test2 [admin@localhost ~]$ rmdir test [admin@localhost ~]$ rmdir test1 rmdir: 删除 "test1" 失败: 目录非空 [admin@localhost ~]$ rmdir -p test1/test2/test3 [admin@localhost ~]$ ll drwxr----x. 2 admin admin 6 3月 13 14:34 test2
注意:必须离开目录,并且目录必须为空目录,不然提示删除失败
cp (复制文件或目录)
语法:
cp [-adfilprsu] 来源档(source) 目标档(destination)
选项:
-a:相当于 -pdr 的意思,至于 pdr 请参考下列说明;(常用)
-d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
-f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
-i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行;(常用)
-l:进行硬式连结(hard link)的连结档创建,而非复制文件本身;
-p:连同文件的属性一起复制过去,而非使用默认属性;(备份常用)
-r:递归持续复制,用于目录的复制行为;(常用)
-s:复制成为符号连结档 (symbolic link),即“捷径”文件;
-u:若 destination 比 source 旧才升级 destination
示例:
[admin@localhost ~]$ cp ~/test.txt /tmp/test111 [admin@localhost ~]$ cp -i ~/test.txt /tmp/test111 cp:是否覆盖"/tmp/test111"? y # n不覆盖,y覆盖
rm (移除文件或目录)
语法:
rm [-fir] 文件或目录
选项:
- -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息
- -i :互动模式,在删除前会询问使用者是否动作
- -r :递归删除,常用。是非常危险的选项
示例:
[admin@localhost ~]$ rm -i /tmp/test111
rm:是否删除普通文件 "/tmp/test111"?y
建议:使用mv进行删除目录,将需要删除的目录移动到其他目录,比如/tmp,以防误删。 格式:mv [需要删除的目录] [目标目录]
mv (移动文件与目录,或修改名称)
语法:
mv [-fiu] source destination
选项:
- -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
- -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
- -u :若目标文件已经存在,且 source 比较新,才会升级 (update)
示例:
[admin@localhost ~]$ cd /tmp [admin@localhost tmp]$ cp ~/test.txt test111 [admin@localhost tmp]$ mkdir mvtest [admin@localhost tmp]$ mv test111 mvtest # 将test111文件移至mvtest目录中 [admin@localhost tmp]$ mv mvtest mvtest2 # 目录更名
二 文件内容查看类命令
cat(由第一行开始显示文件内容)
语法:
cat [-AbEnTv]
选项:
- -A :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
- -b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
- -E :将结尾的断行字节 $ 显示出来;
- -n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
- -T :将 [tab] 按键以 ^I 显示出来;
- -v :列出一些看不出来的特殊字符
示例:
[admin@localhost ~]$ cat -b test.txt
1 test1
2 test2
3 test3
4 test4
5 test5
同时cat还可以合并文件内容,比如:cat test.txt test2.txt > test3.txt,将test.txt、test2.txt合并到test3.txt中
说明:
- test3.txt不存在则创建;
- >代表覆盖;>>代表追加
tac
tac与cat命令刚好相反,文件内容从最后一行开始显示,可以看出 tac 是 cat 的倒着写!如:
[admin@localhost ~]$ tac test.txt test5 test4 test3 test2 test1
nl(显示行号)
语法:
nl [-bnw] 文件
选项:
- -b :指定行号指定的方式,主要有两种:
-ba :表示不论是否为空行,也同样列出行号(类似 cat -n);
-bt :如果有空行,空的那一行不要列出行号(默认值); - -n :列出行号表示的方法,主要有三种:
-nln :行号在荧幕的最左方显示;
-nrn :行号在自己栏位的最右方显示,且不加 0 ;
-nrz :行号在自己栏位的最右方显示,且加 0 ; - -w :行号栏位的占用的位数。
more(分屏显示)
查看内容时,在信息过长无法在一屏上显示时,会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令,每次只显示一页,按下空格键可以显示下一页,按下q键退出显示,按下h键可以获取帮助
在 more 这个程序的运行过程中,你有几个按键可以按的:
- 空白键 (space):代表向下翻一页;
- Enter :代表向下翻一行;
- /字串 :代表在这个显示的内容当中,向下搜寻“字串”这个关键字;
- :f :立刻显示出档名以及目前显示的行数;
- q :代表立刻离开 more ,不再显示该文件内容;
- b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。
less
一页一页翻动
less运行时可以输入的命令有:
- 空白键:向下翻动一页;
- [pagedown]:向下翻动一行;
- [pageup]:向上翻动一行;
- /字串:向下搜寻『字串』的功能;
- ?字串 :向上搜寻『字串』的功能;
- n :重复前一个搜寻 (与 / 或 ? 有关!)
- N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
- q :离开 less 这个程序;
head
取出文件前面几行
语法:
head [-n number] 文件
选项:
- -n :后面接数字,代表显示几行的意思
注意:默认取出前10行数据
tail
取出文件后面几行
语法:
tail [-n number] 文件
选项:
- -n :后面接数字,代表显示几行的意思
- -f :表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测
输出重定向命令:>/>>
Linux允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。如:ls > test.txt ( test.txt 如果不存在,则创建,存在则覆盖其内容 )
注意:>输出重定向会覆盖原来的内容,>>输出重定向则会追加到文件的尾部
管道:|
管道:一个命令的输出可以通过管道做为另一个命令的输入,比如:ls --help | more
清屏:clear 类似于DOS的cls清屏功能,也可使用快捷键:Ctrl + l ( “l” 为字母 )
3.11 建立链接文件:ln,类似Windows下的快捷方式,分为软链接和硬链接。
软链接:不占用磁盘空间,源文件删除则软链接失效。格式:ln -s [源文件] [链接文件]
硬链接:只能链接普通文件,不能链接目录,两个文件占用相同硬盘大小,即使删除了源文件,链接还是存在,格式:ln [源文件] [链接文件]
注意:如果软链接文件和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径。
3.13 文本搜索:grep 格式:grep [-选项] '搜索内容串'文件名,常用选项如下:
注意:grep搜索内容串可以是正则表达式。
3.14 查找文件:find,find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件,常用用法如下:
3.18 归档管理:tar,它是Unix/Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。格式:tar [-参数] 打包后文件名 打包文件,参数前面的“-”可以不使用,常见参数:
注意:解开文件时可加入 -C +路径
3.18 文件压缩解压:gzip,tar与gzip命令结合使用实现文件打包、压缩。 tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz。格式:gzip [-选项] 被压缩文件,常用选项:
3.19 文件压缩解压:bzip2,用法与gzip一致。tar只负责打包文件,但不压缩,用bzip2压缩tar打包后的文件,其扩展名一般用xxxx.tar.bz2。
总结
打包:tar -cvf test.tar 1.txt 2.txt 3.txt;解包:tar -cvf test.tar
压缩:gzip -r test.tar test.tar.gz;解压:gzip -d test.tar.gz
打包加压缩:tar -zcvf test.tar.gz 1.txt 2.txt 3.txt;解压:tar -zxvf test.tar.gz -C /test/
打包加压缩:tar -jcvf test.tar.bz2 1.txt 2.txt 3.txt;解包:tar -jxvf test.tar.bz2
3.20 文件压缩解压:zip/unzip
通过zip压缩文件的目标文件不需要指定扩展名,默认扩展名为zip。
压缩文件:zip [-r] 目标文件(没有扩展名) 源文件,例如:zip myzip *.*
解压文件:unzip -d 解压后目录文件 压缩文件,例如:unzip -d test myzip.zip
3.21 查看命令位置:which
3.22 新建文件:touch


浙公网安备 33010602011771号