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 ...
随机推荐
- c 判断一个字符是否为字母
#include <stdio.h> #include <wctype.h> int main () { ; wchar_t str[] = L"C++"; ...
- FutureTask用法及解析
1 FutureTask概念 FutureTask一个可取消的异步计算,FutureTask 实现了Future的基本方法,提空 start cancel 操作,可以查询计算是否已经完成,并且可以获取 ...
- python 查看源代码
使用包inspect import inspect from mxnet import contrib 查看模块所在路径: inspect.getsourcefile(contrib) 查看源码: i ...
- 解决vue中使用laydate.js选择日期后再修改其他model时日期会被清空问题
首先描述一下问题,下图中均绑定v-model,例如先选择出生开始时间,然后当再选择地区或其他选项时该时间就会被清空 首先看一下我这边开始的默认值,开始我设置都为空 当我选择如下图的生日开始时间与结束时 ...
- QT Embedded二三事之QObject的元对象
一.元对象 元对象被称做是meta object.在运行时刻(runtime),能够提供对象的运行时信息. 在C++语言发展的早期,C++语言本身没有定义对象的运行时信息,如输出类的名 ...
- Mac OS为UltraEdit在Terminal中添加快捷使用命令
一,什么是UltraEdit 我觉得是个程序员,撸代码的都知道UrlEdit是什么.我们在会使用Linux,在Linux中有个很出名的编辑器gedit,使得我们在终端中输入gedit xxx.便可进入 ...
- manifest节点
xmlns:android属性——定义命名空间 这个属性定义了这个XML文件所使用的命名空间.如果需要指定特殊的命名空间,就需要手动编写代码,在Android Studio基本格式如下: xmlns: ...
- 使用Python爬取mobi格式电纸书
最近做了个微信推送kindle电子书的公众号:kindle免费书库 不过目前电子书不算非常多,所以需要使用爬虫来获取足够书籍. 于是,写了以下这个爬虫,来爬取kindle114的电子书. 值得注意的地 ...
- C# 程序的关闭 讲究解释
程序的关闭是很讲究的,处理的不好的话,将软件连续开启和关闭,当数次后在启动软件后程序会崩溃.或者程序退出很慢.细节决定成败,一款好的软件应该从各方面都要做严格地反复地推敲,力争做到无可挑剔. 有 ...
- vue 组件属性props,特性驼峰命名,连接线使用
网址:https://www.cnblogs.com/alasq/p/6363160.html 总结如下:vue的组件的props属性支持驼峰命名,不支持连接线命名,使用是用连接线进行赋值或者数据绑定 ...