欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux文件和目录常用操作的命令

程序员文章站 2022-10-28 18:49:12
本文讲了一些文件和目录本身的基础知识和操作,如新建、复制、移动等,并不涉及文件内容的查看、编辑、搜索等操作。 文件归属 文件的归属只有三种关系: 所有者u:即文件的拥有者,并且一个文件同时只能有一个所有者,一般是谁创建的文件,这个文件的所有者就是谁。 所属组g:文件归属的组,并且一个文件同时只能归属 ......

本文讲了一些文件和目录本身的基础知识和操作,如新建、复制、移动等,并不涉及文件内容的查看、编辑、搜索等操作。 

 

文件归属

文件的归属只有三种关系:

  • 所有者u:即文件的拥有者,并且一个文件同时只能有一个所有者,一般是谁创建的文件,这个文件的所有者就是谁。
  • 所属组g:文件归属的组,并且一个文件同时只能归属于一个组,只有组中的成员才能操作此文件。
  • 其他人o:非前两者关系的用户就是其他人。

 

文件权限

linux中权限的表示由四部分组成,如-rw-r--r--,第一部分为第一个字符,表示文件类型,常用文件类型有-(二进制文件)、d(目录)和l(软连接文件,相当于windows中的快捷方式)。接下来每三个字符为一组的三个部分,分别代表该文件所有者u、所属组g和其他人o所拥有的权限,而每个部分的权限由三个字符表示其拥有的r读、w写和x执行权限,如果有该权限则用对应的字母表示,如果没有该权限则用-表示。

目录的rwx权限如下(文件的rwx权限很好理解,但是目录的rwx权限是有些差别的):

  • r:可以列出目录中的内容。
  • w:可以在目录中创建和删除文件。
  • x:可以进入目录。

 

ls命令

ls [选项] [目录]:列出目录下的所有文件及子目录。

选项:

  • -a:显示目录下的所有内容,包括隐藏文件(linux中以点“.”开头的文件或目录为隐藏文件)。
  • -l:显示目录下内容的详细信息,分别为权限、引用系数(相当于引用计数)、文件所有者、文件所属组、文件大小(单位byte)、文件最后一次修改时间(linux中没有创建时间的概念)、文件名。
  • -h:人性化显示,将文件等内容的大小以较为人性化的方式显示,如m、g等,而不是默认的单位字节。
  • -d:显示当前所在目录或指定目录本身。
  • -i:显示文件或目录的id号(也称为i节点号)。

 

mkdir命令

mkdir [-p] 目录 [目录1 目录2 ...]:用于创建一个或多个空白目录。-p选项是用于递归创建目录。

 

cd命令

cd [目录]:切换到指定目录,目录还以使用一个点“.”表示当前目录,两个点“..”表示上一级目录。

 

pwd命令

显示当前目录的绝对路径。

 

rmdir命令

rmdir 目录:删除一个空目录。

 

rm命令

rm [-rf] 文件或目录:删除文件或目录,不加选项则默认删除文件。

  • -r:删除目录。
  • -f:强制执行。

 

cp命令

cp [-rp] 一个或多个原文件或目录 目标文件或目录:复制文件或目录,如果不加选项,则默认复制文件。当目标文件或目录不存在时,相当于复制并重命名。

  • -r:复制目录。
  • -p:保留文件属性,如最后一次修改时间等。

 

mv命令

mv 原文件或目录 目标文件或目录:移动(剪切)文件或目录。当目标文件或目录不存在时,则相当于剪切并重命名。

文件或目录重命名:linux中没有直接的重命名命令,但是一般使用mv来实现文件或目录的重命名,即将文件或目录移动到“原位置”,但是名称却变了,如“mv /tmp/test.txt /tmp/linux_test.txt”就可以将test.txt重命名为linux_test.txt。

 

touch命令

touch 一个或多个文件或目录:如果文件不存在,则会创建一个或多个空白文件(多个空白文件使用空格隔开,如果文件名中含有空格,文件名需要使用双引号括起来,但建议不要使用空格来命名文件)。如果文件或目录已经存在,则会根据指定的选项修改文件的时间属性,如最后一次修改时间(这里没有列出相应的选项,需要时可自行查看)。

注意:新建的文件是没有执行权限的,所以如果新建的文件是脚本,则需要先赋予它执行权限才能执行这个脚本。

 

ln命令

ln [-s] 原文件 目标文件:生成链接文件(即目标文件,它指向原文件),默认生成硬链接文件。-s选项指定生成软链接文件。

软链接:类似windows中的快捷方式,只是一个指向另一个文件的链接而已,并且linux中的软链接文件的权限永远都是lrwxrwxrwx,以及大小都是固定的很小的字节数。

硬链接:硬链接的信息与原文件的信息都是一样的,并且其中一个文件更新后,硬链接文件也会同步更新,相当于cp -p命令再加上同步跟新的功能。之所以它能同步更新,是因为硬链接的i节点和原文件的i节点是相同的(而linux就是通过i节点来识别不同的文件)。

软链接与硬链接的差别(或者说硬链接的特点):

  • 硬链接是不能跨分区的。
  • 硬链接是不能指向目录的。

 

locate命令
locate -i 文件名:在文件资料库中查找文件。(默认区分大小写,-i选项表示不区分大小写)
这个命令搜索速度非常快,几乎秒搜,find命令是去硬盘上搜索,而find是在自己维护的一个文件资料库中查找,这个文件资料库会定期自动更新。但是文件资料库是不会收录/tmp目录下的文件的。
updatedb:手动更新文件资料库。

 

find命令
find 搜索范围 匹配条件:搜索文件。
find是直接在硬盘上搜索,所以它的消耗是非常大的,所以使用的时候应该尽量缩小搜索范围,匹配条件也越精确越好。而且最好不要在系统负载较高时使用这个命令。
常用选项:

  • -name:根据文件名搜索。如“find / -name init”表示在根目录的范围内搜索文件名为init的文件(精确匹配)。如果想要模糊匹配,可以使用通配符,如find / -name *init*(星号*匹配任意字符,问号?匹配单个字符)。
  • -iname:不区分大小写进行文件查找。
  • -size:根据文件大小进行搜索,+表示大于,-表示小于,=表示等于。查找大小的单位为一个数据块,linux中一个数据块的大小为512字节,即0.5kb,所以搜索的时候需要自己转换以下。如“find / -size +204800”表示在根目录下查找大于100mb的文件(100mb=102400kb=204800个数据块)。
  • -user:根据所有者来进行搜索。
  • -group:根据所属组来进行搜索。
  • -amin:根据文件访问时间查找,时间单位为分钟。
  • -cmin:根据文件属性(属性即ls -l能查看到的内容)的改变时间查找,时间单位为分钟。如“find /etc -cmin -5”表示在/etc目录下查找5分钟内文件属性被修改过的文件。
  • -mmin:根据文件内容的改变时间查找,时间单位为分钟。
  • -a:连接选项,逻辑与,表示需要两个条件同时满足。如find /etc -size +1638840 -a -size -204800。
  • -o:连接选项,逻辑或,表示两个条件满足其中任意一个即可。
  • -type:根据文件类型查找,f表示文件,d表示目录,l表示软链接。
  • -exec/-ok 命令 {}\;:使用-exec(直接执行,不会询问)或-ok(执行命令时会进行询问)对查找结果执行某个命令,{}\;是固定的写法,{}表示查找结果,\只是对后面分号;的转义而已。如“find /etc -name init -exec ls -l {}\;”。
  • -inum:根据i节点查找。

 转自:https://www.cnblogs.com/guyuyun/p/12688947.html