Linux系列(6):入门之文件与目录管理
你知道常见的目录操作吗?
知道如何查询文件内容吗?
了解 umask 指令吗,知道如何查看和设置文件的默认权限吗?
知道文件的隐藏属性吗,了解如何设置(chattr指令)并查看(lsattr指令)吗?
知道文件的特殊权限吗,了解如何设置(chmod指令)和查看(ls指令)吗?
了解 file 指令吗,知道怎样查询文件的详细类型吗?
了解whereis 与locate以及find指令的区别吗,知道如何查找文件与指令的位置吗?
了解FHS吗?
如果有你不知道的,那么这篇文章可以带你了解这些知识。
1.目录与文件相关操作
1.对目录的操作
对目录的操作主要是:创建目录、删除目录、查看当前目录、变换目录等。

1.删除非空目录

格式:
rm -r mydir //删除目录(非空目录)及里面的所有内容。
注意:当需要删除一个非空目录时,最好通过普通用户来执行递归删除操作(系统不会每删除一个文件就询问一次 )。为什么呢?因为当使用root用户执行递归删除操作时,系统为了安全每删除一个文件就会询问一次。
2.移动文件与目录或更新目录名

移动文件: 当mv指令的第一个参数为文件A,最后一个参数为目录dir时,表示将A文件移到目录dir当中。
更新目录名:当mv指令的第一个参数为目录mydir,最后一个参数为修改后的目录名称(该目录名必须不存在,否则就是移动目录了)时,表示将目录mydir的名称更改目录名dir。
移动目录:当mv指令的第一个参数为目录mydir,最后一个参数为目录dir时,表示将目录mydir移到目录dir中。
2.对文件的操作
对文件的操作主要有:创建文件、删除文件、移动文件、查看文件等。
3.取得路径的文件名称与目录名称
指令格式:
basename 文件绝对路径名 //获取文件名
dirname 文件绝对路径名 //获取文件路径

2.文件内容查阅

3.文件与目录检视

4.文件默认权限
1.查询文件默认权限
指令:umask //不带参数代表查询文件默认权限
不带选项和参数执行该指令默认情况下会输出 。
这4个数字分为两部分0(这是第一部分)和022(这是第二部分)来看。
接下来先看022代表的意思:
1.第一部分
这部分与文件的特殊权限有关。
该部分仅包含一个数字。
2.第二部分
这部分与普通权限(即读、写、执行)有关。
该部分包含3个数字,第一个数字(0)代表当前用户,第二个数字(2)代表当前组,第三个数字(2)代表其他用户。
0:代表当前用户的权限,且权限为rwx;为什么是这样?默认rwx权限都具备,这里的0代表没有减去权限,因此当前用户的权限还是rwx。
2:代表当前组的权限,且权限为r-x;为什么是这样?默认rwx权限都具备,这里的2(用二进制表示就是10)代表减去权限w,因此当前用户的权限是r-x。
2:代表当前组的权限,且权限为r-x;为什么是这样?默认rwx权限都具备,这里的2(用二进制表示就是10)代表减去权限w,因此当前用户的权限是r-x。



2.设置默认的文件权限
指令:umask //带参数表示设置默认的文件权限
实例:umask 000 //表示当前用户、当前群组、其他用户创建的文件都具有rwx权限


5.文件隐藏属性
设置文件隐藏属性指令chattr与查看文件隐藏属性指令lsattr很重要。
1.设置文件隐藏属性
指令:chattr

个人认为上面的 a 和 i 这两个属性最重要。
接下来看一下文件隐藏属性案例:

这个指令很重要,尤其是在系统的数据安全方面,由于这些属性是影藏的,因此只有使用lsattr指令才能查看隐藏属性。
2.查看文件隐藏属性
指令:lsattr

6.文件特殊权限
1.文件特殊权限种类
一共有三种:SUID、SGID、SBIT。
注意:SUID使用在文件上、而SBIT是用在目录上的,而SGID二者皆可。

2.特殊权限功能
1.SUID特殊权限
SUID的全称是Set UID,顾名思义,设置UID。该权限只针对文件有效(目录无效)。

这样讲限制与功能你有可能不理解,那接下来我们举个例子:



3.设置特殊权限
chmod指令设置特殊权限。
1.chmod数字格式设置
指令案例:chmod 4777 filename //给filename设置的所有用户的权限为rwxs

下面就举一个实例加深理解:

2.chmod字符格式设置
指令案例:chmod u=rwxs,go=r-x filename //给filename设置的当前用户权限为rwxs、组和其他用户设置r-x权限

2.SGID特殊权限
与SUID不同的是,SGID可以针对文件或目录来设置(即该权限对文件和目录都有效)。
SGID权限对于文件和目录的功能是不同的。
1.SGID权限对于文件的功能
SGID功能和要求如下:


下面讲解一个实例来加深理解:

SGID权限对于文件的功能已经讲完了,接下来讲一下SGID权限对于目录的功能。
2.SGID权限对于目录的功能
当目录设置成了SGID权限后就会具备以下功能:

3.SBIT特殊权限

7.查询文件的类型
之前通过 ls -l 指令可以查看文件的类型与属性,但是ls命令中显示的文件类型是比较宽松的文件类型(一般文件、连接文件、目录文件),那么如果我想知道详细的文件类型呢?该怎么办:使用file指令。
指令:file

8.文件与指令的搜索
文件与指令的搜索就是找出文件与指令的位置。
1.指令文件名的搜索
我们经常在终端上使用指令,比如ls、cat等,那怎么知道这些指令被放在哪里呢?可以通过which和type指令查找指令文件存放的位置。
1.which(寻找可执行文件)
这里的可执行文件指的是二进制文件

格式:
which command //列出一个从PATH可以找到的指令文件名
注意:which这个指令是根据PATH环境变量所规范的路径,去搜索“可执行文件”的文件名,所以重点是找出“可执行文件”而已!which后面接的是完整文件名。which无法寻找bash的内置指令(bash内置指令不在PATH环境变量中),但是可以通过type找出bash的内置指令。
2.文件文件名的搜索
在Linux下有很多搜索文件的指令。通常find指令不是很常用,因为速度比较慢。一般我们先用whereis或者locate指令来搜索,如果找不到才会用find来搜索。那么这些不同的搜索指令各有什么特点呢?
whereis:仅仅只寻找系统中某些特定目录下的文件。特定目录:/bin/sbin、/usr/share/man、/usr/src等几个目录下的某些子目录。
locate:利用数据库来搜索文件名。
find:直接搜索硬盘。
1.whereis指令详解

实例:

2.locate指令详解

keyword:表示部分文件名。
locate可以通过部分文件名找到一个或多个文件;可以通过部分文件名找到文件这个功能是特别好的。
注意:locate有个限制,因为locate搜寻的数据是从“已创建的数据库 /var/lib/mlocate/”里面的数据中查找的,而数据库的创建默认是在每天执行一次,所以在你新建文件之后,却在数据库更新之前去查找该文件,那么locate会告诉你找不到该文件,因为你必须以root身份使用updatedb手动更新数据库。手动更新数据库之后再使用locate就可以查找到文件了。
updatedb指令用法
格式:
updatedb //根据/etc/updatedb.conf的设置去搜寻硬盘内的文件名,并更新/var/lib/mlocate/目录内的数据库文件
3.find指令详解
find的功能特别强大,因此用法也有点复杂,有以下几种:
《1》查找并显示指定目录下那些指定时间段内被修改过的文件的文件位置。
《2》查找并显示指定目录下属于某个指定使用者或群组的文件的文件位置。
《3》查找并显示指定目录下指定的文件名或权限的文件的文件位置。
《4》额外的功能,就是使用额外的指令对查找的结果进行处理。
以上4种大的功能的查找是通过不同的选项以及参数来实现的。
统一格式:
find [ path ] [ opation ] [ action ]
在此根据功能区分分别讲解选项与参数的意义:
1.查找并显示指定目录下那些指定时间段内被修改过的文件的文件位置

2.查找并显示指定目录下属于某个指定使用者或群组的文件的文件位置


3.查找并显示指定目录下指定的文件名或权限的文件的文件位置


4.额外功能


实例1
查找/home/zxp_user中大于1MB的文件

Linux系列(6):入门之文件与目录管理的更多相关文章
- Linux命令工具基础02 文件及目录管理
文件及目录管理 文件管理不外乎文件或目录的创建.删除.查询.移动,有mkdir/rm/mv 文件查询是重点,用find来进行查询:find的参数丰富,也非常强大: 查看文件内容是个大的话题,文本的处理 ...
- linux学习(2)——文件和目录管理
(二) 一:绝对路径和相对路径 ...
- Linux学习笔记之1——文件和目录管理(硬连接和软连接)(连结档,相当于快捷方式)
在这节将要学习linux的连接档,在之前用"ls -l" 查看文件属性的命令时, 其中第二个属性是连接数.那么这个连接数是干什么的?这就要理解inode. 先说一下文件是怎么存储的 ...
- (五)Linux之文件与目录管理以及文本处理
Linux之文件与目录管理 目录 Linux之文件与目录管理 前言 绝对路径与相对路径说明: 一.目录常用命令 常用处理目录的命令: 切换目录 cd 显示当前路径 pwd 查看目录下文件 ls 创建目 ...
- Linux 文件与目录管理
Linux 文件与目录管理 我们知道Linux的目录结构为树状结构,最顶级的目录为根目录 /. 其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们. 在开始本教程前我们需要先知道什么是绝对 ...
- CentOS(十)--与Linux文件和目录管理相关的一些重要命令②
在结束了第二期的广交会实习之后,又迎来了几天休闲的日子,继续学习Linux.在上一篇随笔 Linux学习之CentOS(十七)--与Linux文件和目录管理相关的一些重要命令① 中,详细记录了与Lin ...
- CentOS(九)--与Linux文件和目录管理相关的一些重要命令①
接上一篇文章,实际生产过程中的目录管理一定要注意用户是root 还是其他用户. 一.目录与路径 1.相对路径与绝对路径 因为我们在Linux系统中,常常要涉及到目录的切换,所以我们必须要了解 & ...
- [Linux] Linux学习笔记(5)-文件与目录管理
1.Linux目录结构为树状结构,最顶层的目录为跟目录"/",其它目录通过挂载可以将它添加到目录树中,通过解除挂载移除它们. 2.绝对路径与相对路径 绝对路径写法:由根目录&quo ...
- Linux学习-文件和目录管理
Linux文件和目录管理 文件系统架构 1.Linux文件系统具有层级性 1)文件或者目录起始于根目录"/"成为树状结构 2)最顶层由/开始 2 ...
随机推荐
- 51nod1040 最大公约数之和,欧拉函数或积性函数
1040 最大公约数之和 给出一个n,求1-n这n个数,同n的最大公约数的和.比如:n = 6时,1,2,3,4,5,6 同6的最大公约数分别为1,2,3,2,1,6,加在一起 = 15 看起来很简单 ...
- jQuery系列(十一):jQuery的事件绑定和解绑
1.绑定事件 语法: bind(type,data,fn) 描述:为每一个匹配元素的特定事件(像click)绑定一个事件处理器函数. 参数解释: type (String) : 事件类型 data ( ...
- Difference Between static and default methods in interface
I was learning through interfaces when I noticed that you can now define static and default methods ...
- 执行jar包或执行其中的某个类
执行jar包,默认执行javafile中指定的main程序java -jar jar包例如 java -jar test.jar执行依赖其他jar包的class: java -cp .;E:\tool ...
- nginx 部署前端项目(vue)
前提:安装好nginx 打开nginx目录,一般是(/usr/local/nginx) npm run build 打好vue包 一般放到(/usr/local/nginx/html/)目录下 配置: ...
- P4124 [CQOI2016]手机号码
P4124 [CQOI2016]手机号码 题解 数位DP DFS 虽然套路,但还是恶心到找不到锅在哪里 注意这个 然后你就发现其实这样就不用记录前导0了 锅在这个鬼地方QAQ 代码 #inclu ...
- RecyclerView进阶:使用ItemTouchHelper实现拖拽和侧滑删除
现在RecyclerView的应用越来越广泛了,不同的应用场景需要其作出不同的改变.有时候我们可能需要实现侧滑删除的功能,比如知乎首页的侧滑删除,又或者长按Item进行拖动与其他Item进行位置的交换 ...
- 使用KerasNet
1.安装Python3.6,必须是3.6因为当前KerasNet的配套版本是3.6 https://www.python.org/ftp/python/3.6.8/python-3.6.8-amd64 ...
- handler定义
Handler主要接收子线程发送的数据, 并用此数据配合主线程更新UI,用来跟UI主线程交互用.比如可以用handler发送一个message,然后在handler的线程中来接收.处理该消息,以避免直 ...
- 让matlab在出错时停在debug内,并留下相关变量
很多时候,我们写的matlab代码会在执行的过程中发生错误.这种情况下,matlab会 直接跳出执行,顺带告诉你是在代码的那一行跳出了,但是却无法留下出错时的每个变量 的具体值,给debug带来很大的 ...