Linux 目录和文件的基本操作

一、显示文件命令

1、文件查看和连接命令 cat

使用方式:cat [选项] <file1>…
说明:把文件串接后显示在标准输出上。
主要选项的含义:
* -n或者–number:由1开始对所有输出的行数进行编号。
* -b或者–number-nonblank:和-n类似,但是对于空白行不编号。
* -s或者–squeeze-blank:当遇到有连续两行以上的空白行时,就代换为一行的空白行。
* -v或者–show-nonprinting:显示不可打印字符。
eg:
cat -n textFile1 代表将文件textFile1的内容加上行号后显示输出。
cat -b textFile1 textFile2 代表将文件textFile1和textFile2的内容串接在一起加上行号(空白行不加行号)之后输出,两个文件各自单独编号。

2、分屏显示命令 more

使用方式:more [选项] <file> …
说明:该命令类似于cat,可将文件显示在屏幕上,但它每次只显示一页。显示文件时,空格键可显示下一页,按<q>键退出显示,<h>键给出帮助信息。该命令还具有搜索字符串的功能。
主要选项的含义:
* -<num>:指定屏幕显示的行数为num行
* -d:在屏幕下方显示提示信息“Press space to continue,’q’ to quit.”,如果用户按错键,则显示“Press ‘h’ for instructions.”。
* -l:more命令下遇到特殊字符^L(送纸字符)会暂停,使用该选项可取消该功能。
* -f:计算行数时,计算的是实际的行数而非自动换行后的行数,因为单行字数太长时会自动换行。
* -p:不以卷动的方式显示每一页,而是先清除屏幕后再显示内容。
* -c:与-p类似,不同的是先从顶部开始显示内容,再清除每行后剩余的内容。
* -s:当遇到有连续两行以上的空白行时,代换为一行的空白行。
* -u:不显示下划线。
* +/<String>:在文件中搜寻字符串string,然后显示字符串所在页的内容。
* +<num>:从第num行开始显示。

3、按页显示命令 less

使用方式:less [选项] <fileName>
说明:less作用与more非常相似,都是用来浏览文本文件的内容,不同的是less允许使用者往回卷动以浏览已经看过的部分,同时less并不在一开始就读入整个文件,因此在遇到大型文件的时候会比较快。与more相比less功能更加强大,在less命令执行时,可以使用的指令与vi编辑器的命令以及more的指令类似。
主要选项含义:
* -i:在查找时忽略大小写
* -p<string>:搜索指定的字符串,并从第一个符合条件的地方开始显示。
* -<显示列数>:改变页面的显示列数。
* -S:当某行的内容超过显示页面的宽度,直接将超出的部分截断舍弃,默认情况下less指令会把超出的部分折回来再显示。

二、复制、删除和移动命令

1、复制命令cp

命令格式:cp [选项] <source> <dest>
或者 cp [选项] <source>…<directory>

说明:将一个文件拷贝至另一文件,或一个或多个文件拷贝至另一个目录。
主要选项含义:
* -r:若source中含有目录,则递归地将目录下的文件拷贝至另一个目录。
* -f:若目的地已经有同名文件存在,则在复制前先予以删除再进行复制。
* -a:尽可能将文件模式、所有者、时间标签、链接等信息照原状予以复制,并且递归地复制子目录中的文件。
eg:
cp aaa bbb 将文件aaa复制为文件bbb。
cp *.c Finished 将所有的C语言源程序拷贝至Finished子目录中。

2、删除命令 rm

命令格式:rm [选项] <name>…
说明:逐个删除指定的文件或目录。默认情况下,<name>为文件名,rm命令不删除目录,只有指定-d选项时才表示删除指定的目录。
主要选项含义:
* -i:删除前逐一询问确认。
* -f:强制删除,即使原文件属性为只读,也直接删除而无需逐一确认。
* -r:递归地删除目录下的内容。
eg:
rm -i *.c 删除当前目录下所有的C语言源程序文件,删除前逐一询问确认。
rm -rf myfiles 将myfiles子目录以及子目录中所有文件强制删除。

3、移动或者重命名命令mv

命令格式:mv [选项] <source> <dest>或者 mv [选项] <source>…<directory>
说明:将一个文件重命名为另一个文件,或将数个文件移至另一目录。
主要选项含义:
* -i:若目的地已有同名文件,则先询问是否覆盖原文件。
* -f:强制移动,如果目的地有同名文件,则覆盖原文件。
eg:
mv aaa bbb 将文件aaa重命名为bbb
mv -i *.c myproject 将所有的C语言源程序移至myproject子目录中,若目的地已有同名文件,则先询问是否覆盖原文件。

三、创建和删除目录命令

1、创建目录命令 mkdir

命令格式:mkdir [-p] <dirName>…
说明:如果指定目录不存在,则建立之。
选项-p表示,若要建立的目录的上层目录尚未建立,则一并建立上层目录。

2、删除目录命令 rmdir

命令格式:rmdir [-p] <dirName>
说明:删除空目录dirName,如果目录非空,则出现错误信息。
选项-p表示当删除指定目录后,如果该目录的上层目录也变成了空目录,则将其一并删除。

四、切换工作目录和显示目录命令

1、切换工作目录命令 cd

命令格式:cd <dirName>
说明:变换工作目录至dirName。其中dirName可以用绝对路径表示,也可以用相对路径表示。若目录名省略,则变换至当前用户的主目录。

2、显示当前路径命令 pwd

命令格式:pwd

3、查看目录命令 ls

命令格式:ls [选项] [<name>…]
说明:列出文件或者目录的信息。<name>是文件或者目录名,默认情况下列出当前工作目录的信息。如果给定文件或者目录名则列出指定文件或者目录的情况。
主要选项:
* -a:显示所有文件及目录,ls默认将名称以“.”开头的文件或目录视为隐藏,不会列出。
* -b:当文件名包含不可打印字符时,以八进制形式列出文件的名字。
* -d:如果name参数是一个目录,那么默认情况下ls命令仅列出目录的名字,而不列出目录下的文件。-d选项与-l选项一起使用,可列出目录的属性信息。
* -l:使用长格式,除文件名外,还显示文件的类型(d:目录,c:字符型设备,b:块设备,p:命名管道,f:一般文件,l:符号链接,s:套接字)、权限、硬链接个数、所有者名、群组名、文件大小(单位为字节)、修改时间等详细信息;如果列表的是一个目录,则在最前面给出“总用量…”表示该目录占用的总块数(1块=1024字节)。
* -r:将文件以相反顺序显示,默认情况下按文件或目录名的英文字母顺序显示。
* -t:将文件依修改时间排序,愈新的愈排前面。
* -A:同-a,但不列出“.”、“..”文件。
* -F:在列出的文件名后以符号表示文件的类型,一般文件之后不加符号,可执行文件加“*”,目录加“/”,符号链接加“@”,管道加“|”,套接字加“=”。
* -R:若目录下有文件,则递归地列出目录下的文件。

五、查找与定位命令

1、查找文件或者目录命令 find
find命令按照用户指定的条件,从指定的目录开始检索,找到所有满足匹配准则的文件。指定的条件可以是文件名、文件大小或文件修改日期等。

命令格式:find [path…] [expression]
说明:在目录树结构中从path开始向下查找文件,将符合expression规定的文件列出来。输入的命令中第一个以“-”
“(”、“)”、“,”或者“!”开始的参数作为expression参数,在这之前的参数都被认为是要搜索的路径,在这之后的才被认为是expression的部分。如果不给出path,则使用当前工作目录,如果不给出expression,则使用“-print”作为默认的expression。
主要选项:
* -amin <n>:在过去n分钟内被访问过。
* -anewer <file>:比文件file更晚被访问过的文件。
* -atime <n>:在过去n天被访问过的文件。
* -cmin <n>:在过去n分钟被修改过。
* -cnewer <file>:比文件file更新后更新的文件。
* -ctime <n>:在过去n天内被修改过的文件。
* -empty:内容为空的文件。
* -gid <n> or-group <name>:gid是n或者group名称是name的文件。
* -ipath <p> , -path <p>:路径名称符合p的文件,ipath表示忽略大小写。
* -name <name> , -iname <name>:文件名称符合name的文件。iname表示忽略大小写。
* -size <n 单位>:文件大小是n个单位,其中单位b表示512的区块,c表示字符数,k表示kilobytes,w表示两个字节组成的字。
* -type <c>:文件类型是c的文件。其中文件类型可以是:d、c、b、p、f、l、s之一,它们的含义与命令的选项-l中的说明一样。
* -pid <n>:进程的id是n的文件。

exp1 exp2或者 exp1 -a exp2或者 exp1 -and exp2:三者含义相同,表示同时满足规定exp1和exp2。
!exp1 或者 -not exp1:两者含义相同,表示exp的否定。
exp1 -o exp2或者exp1 -or exp2:两者含义相同,表示满足exp1或者exp2之一便可。

2、文件定义命令 locate

命令格式:locate [选项] <search string>
说明:locate可以快速地搜寻文件系统内是否有满足查询条件的文件。其工作原理是:先建立一个包括系统内所有文件名称及路径的数据库,之后当寻找文件时就只需查询这个数据库,而不必深入文件系统之中了。它还存储文件的访问权限及所有者信息,从而保证用户不能看到他们无权访问的文件。一般的,数据库的建立可以放在crontab中自动执行。使用者在搜索时只要用locate filename的形式就可以了。
主要选项:
* -u:从根目录/开始创建数据库。
* -U <dir>:从目录dir开始创建数据库。
* -e <dir1,dir2,…>:将指定的目录排除在搜索的范围之外。
* -l <level>:level表示安全级别,0表示不进行安全检查。如果level等于1,则启动安全模式,在安全模式下,使用者不会看到权限无法看到的文件,这会使速度减慢。
* -i:大小写敏感。
* -q:安静模式,不会显示任何错误信息。
* - <n>:至多显示n个输出
* -r <regexp>:使用正则表达式regexp做搜索的文件。

3、文件内容检索命令 grep

find命令和locate命令是根据文件名或者文件属性查找文件,而grep命令可以检索文件的内容,找到文件中满足匹配模式的文本行。grep命令的功能相当强大
命令格式:grep [选项] <string> <file> …
其中string是准备检索的字符串或模式。file是准备从中检索的文件。
常用选项:
* -i:表示在进行比较时忽略大小写。
* -n:表示在输出的检索结果之前给出文本行在文件中的行号。
* -v:表示检索不包括给定字符串或者模式的所有文本行。

六、链接命令 ln

对于同一文件,出于应用的需要,可以分配不同的名字。
链接分为两种:硬链接(hard link)与软链接(又叫符号链接 symbolic link)。

硬链接的意思是一个文件是另外一个文件的别名,它们不可区分,是用一个文件实体。
符号链接则是一个特殊的文件,它的内容不是真正的数据,而是指向另外一个文件(链接目标)的路径名。他们的关系与指针和指针所指的对象之间的关系有些相似。
对符号链接的大部分操作,包括打开,读,写等,都被传递给其链接目标,操作真正作用在链接目标上,另外一些操作,如删除等则作用在符号链接本身。
硬链接则必须在同一文件系统中,软链接却可以跨越不同的文件系统,并且可以对目标创建链接,不论是硬链接还是软链接都不会将原本的文件复制一份,因而只会占用非常少量的磁盘空间。

命令格式: ln [选项] <source> <dest>
说明:该命令产生一个dest到source的链接,至于ln命令是创建硬链接还是软链接则由选项-s决定
选项主要含义:
* -f:链接时先将与dest同名的文件删除。
* -d:允许系统管理员创建对目录的硬链接,默认情况下不允许创建目录的硬链接。
* -i:在删除与dest同名的文件时先进行询问。
* -n:在进行软链接时,将dest视为一般文件。
* -s:创建软链接,默认情况下创建硬链接。
* -v:在链接之前显示每个文件的文件名。
* -b:在链接时将可能被覆盖或删除的文件进行备份。
eg:
ln -s yy zz 对文件yy产生一个符号链接 zz;
ln yy xx 对文件yy产生一个硬链接zz;

七、创建文件、改变文件或者目录时间的命令touch

命令格式: touch [选项] <file1> [file2…]
说明:修改指定文件的访问时间和修改时间记录,默认修改为当前时间。如果指定文件不存在则创建该文件。
主要选项:
* -a:只改变文件的访问时间记录。
* -m:只改变文件的修改时间记录。
* -c:如果指定文件不存在,不会建立新的文件。与–no-create的效果一样。
* -r <参考文件或目录>:使用参考文件或目录的时间记录修改指定文件。
* -d <datestring>:根据datestring设定文件的时间与日期,datestring可以使用各种不同的日期时间格式。
* -t <stamp>:设定文件的时间记录,stamp的格式为[ [CC] YY] MMDDhhmm [.ss]。
* –no-create:如果指定文件不存在,不建立新的文件。
eg:
touch -t 1505061803 file 将file的时间记录改为2015年5月6日18点3分。
touch -d “6:03pm 05/06/2015” file 同上。
touch -r rfile file 将file的时间改变成rfile时间一样。

八、文件比较与排序

1、文件比较命令 diff和diff3

diff用于两个文件名
diff3用于三个文件比较

2、文件排序命令 sort

sort命令用于对输入数据或者文本文件的内容进行排序,并按照一定的顺序逐行显示。
命令格式: sort [选项] [file]
主要选项:
* -b:表示忽略前置的空白符。
* -d:表示仅考虑字母、数字和空格字符,按字典顺序排序。
* - f:表示忽略字母的大小写。
* - i:表示忽略非打印字符。
* -n:表示按照字符串的数字值而不是文字进行排序
* -r:表示按照反序,即从大到小的反向字符顺序排序。
* -k:表示按关键字或字段的位置排序。
* -o:表示存储排序结果的输出文件,默认情况下为标准输出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值