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 ...
随机推荐
- JavaScript闭包应用场合——控制前端接口轮训
很多人都知道JavaScript的闭包,也知道大致是一个什么意思,但是对于闭包的应用场合不是很清楚 最近在改造项目的过程之中修改前端接口轮训方式的时候用到了闭包驱动setTimeout来实现一个类似定 ...
- 下载使用IDE练习插件
安装IDE练习插件 启动Eclipse,选择菜单“Help”-“Install New Software...”,在打开的对话框中: 点击“Add”,对Name填写一个任意的名称,例如“Java Pr ...
- ACM之路(16)—— 数位DP
题目就是kuangbin的数位DP. 先讲C题,不要62,差不多就是一个模板题.要注意的是按位来的话,光一个pos是不够的,还需要一维来记录当前位置是什么数字,这样才能防止同一个pos不同数字的dp值 ...
- MySQL字段命名不能使用的MySQL关键字
#今天遇到一个问题,把某一字段重新命名为condition时报错,于是联想到可能是MySQL的关键字,用``引起来后,问题解决. #在MySQL数据库中,Table字段不能使用MySQL关键字: #[ ...
- Spring AOP潜入易懂的讲解
为什么会有面向切面编程(AOP),我们知道Java是一个面向对象(OOP)的语言,但它有一些弊端,比如当我们需要为多个不具有继承关系的对象引入一个公共行为,例如日志,权限验证,事务等功能时,只能在每个 ...
- idea2018.3.2版本如何破解
IntelliJ IDEA2018破解教程(2019.1.11更新)破解方法:下载破解补丁→修改配置文件→输入激活码→激活成功 由于JetBrains封杀,大部分激活服务器已经不能使用,使用下面的比较 ...
- Linux设备驱动程序 之 read和write
read和write原型 read和write方法完成的任务是相似的,亦即,拷贝数据到应用程序空间,或者反过来从应用程序空间拷贝数据:因此,它们的原型很相似,如下: ssize_t (*read) ( ...
- 【软件工程】Alpha冲刺 (6/6)
链接部分 队名:女生都队 组长博客: 博客链接 作业博客:博客链接 小组内容 恩泽(组长) 过去两天完成了哪些任务 描述 tomcat的学习与实现 服务器后端部署,API接口的beta版实现 后端代码 ...
- php 设置error_reporting(0)和ini_set('display_errors', 0)之后,还是显示错误
php 5.4 apache 2.2 关闭错误报告和错误显示 依然会显示错误 按照我的理解,error_reporting(0)之后就应该不会显示错误了,这是怎么回事? 后来我又试着在php.ini者 ...
- P5020 货币系统
P5020 货币系统 题解 仔细分析... 这道题其实就是求所给数组中有多少个数字不能被该数组中的数字自由组合表示出来 比如样例1 3,10 不能被该集合里的数字表示出来,所以他们组成目标集合 6=3 ...