Linux操作之目录和文件管理

Adeline ·
更新时间:2024-09-20
· 730 次阅读

Linux操作Linux操作之目录和文件管理Linux文件类型Linux目录结构文件和目录操作链接文件 Linux操作之目录和文件管理 Linux文件类型 Linux目录结构 文件和目录操作 链接文件

Linux文件类型

在Linux系统中,基本上所有的目录和设备都是以文件的形式存在的。

普通文件
纯文本文件、二进制文件、数据格式的文件、压缩文件都是此类,第一个属性为【-】 目录文件
类似于windows中的目录,能用cd命令进入,第一个属性为【d] 设备文件
a.块设备文件,即存储数据以供系统存取的接口设备,第一个属性为【b】
b,字符设备文件,即串行端口的接口设备,第一个属性为【c] 管道文件
特殊文件类型,主要是用来解决多个程序同时存取一个文件所造成的错误,第一个属性为【p】 链接文件
a.软链接文件,类似于windows下的快捷方式
b.硬链接文件

Linux目录结构

Linux系统都有根文件系统,它包含系统引导和使其他文件系统得以挂载所必要的文件。Linux系统的目录是分层的树状结构,都是挂载在根文件系统"/"下

目录 描述
/home 包含Linux系统中各用户的主目录,子目录默认以该用户命名
/root 是root用户的主目录
/bin 包含常用的命令文件,不能包含子目录
/sbin 包含系统管理员和root用户所使用的命令文件
/dev 包含大部分的设备文件,比如磁盘、光驱等
/lib 包含Linux系统的共享文件和内核模块文件。/lib/modules目录存放核心可加载模块
/lib64 包含64版本Linux系统的共享文件和内核模块文件
/tmp 包含一些临时文件
/mnt 手动为某些设备(比如硬盘)挂载提供挂载目录
/boot 包含Linux系统的内核文件和引导装载程序的文件
/opt 包含某些第三方应用程序的安装设备
/media 由系统自动为某些设备(一般为光盘、U盘等设备)挂载提供挂载目录
/var 该目录存放不经常变化的数据,如系统日志、打印队列、DNS数据库文件等
/etc 包含Linux系统上大部分的配置文件,建议修改配置文件之前先备份
/usr 包含可以供所有用户使用的数据和程序
/srv 存储一些服务启动之后所需要取用的资料目录
/run 一个临时文件系统,一些程序或服务启动之后,会将它们的PID放置在该目录中
/sys 在Linux系统提供热插拔能力的同时,该目录包含所检测到的硬件设置,它们会被转换成/dev目录中的设备文件
/proc 是一个虚拟的文件系统,它不存在磁盘中,而是由内核在内存中产生的,用于提供系统的相关信息。 /proc/cpuinfo :该文件保存计算机CPU信息。 /proc/filesystems:该文件保存Linux文件系统信息 /proc/ioports:该文件保存计算机I/O端口号信息 /proc./version:该文件保存Linux系统版本信息 /proc/meminfo :该文件保存计算机内存信息

文件和目录操作

pwd

用于显示工作目录,执行该指令可立刻得知你目前所在工作目录的绝对路径名称
在这里插入图片描述

cd

用于更改用户的工作目录路径。工作路径可以使用绝对路径或相对路径,绝对路径从/(根)开始,然后循序到所需的目录下,相对路径从当前目录开始。"~“也表示home目录的意思,”.“则是表示目前所在的目录,”…"则表示目前目录位置的上一层目录。

cd 具体路径 cd ./ cd ../ cd ~ cd

在这里插入图片描述

ls

显示指定工作目录下的内容,对于目录而言将列出其中的所有子目录和文件信息;对于文件而言,将输出其文件名以及所要求的其他信息。

ls [选项][文件名]
相关选项 功能
-a 显示全部的文件,包含隐藏文件(开头为.的文件)也一起罗列出来,这是最常用的选项之一
-A 显示全部的文件,连同隐藏文件,但不包括.与…这两个目录
-d 仅列出目录本身,而不是列出目录内的文件与数据
-f ls会默认以文件名排序,使用-f选项会直接列出结果,而不进行排序
-F 在文件或目录后加上文件类型的指示符号
-h 以人们易读的方式显示文件或目录大小
-i 显示inode节点信息
-l 使用长格式列出文件或目录信息
-n 以UID或GID分别代替文件用户名和群组名显示出来
-r 将排序结果反向输出
-R 连同子目录内容一起列出来,等于将该目录下的所有文件都显示出来
-S 以文件容量大小排序,而不是以文件名排序
-t 以时间排序,而不是以文件名排序
–color=never 不依据文件特性给予颜色显示
–color=always 显示颜色,是默认方式
–color=auto 表示让系统自行依据配置来判断是否给予颜色
–full-time 以完整时间模式(包含年、月、日、时、分)输出
–time=(atime,ctime) 输出acess时间或改变权限事件,而不是内容变更时间

PS:常用的不常用的全在上面,先一个个试试呗,常用的就看看,不常用的用的时候百度一下即可。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
PS:root模式下,一样的,就不用放图了。

touch

该指令用于创建空文件以及更改文件的时间。

touch [选项] [文件] #语法 touch --help #个人觉得这个最有用

在这里插入图片描述
PS:基本操作-a和-m,我不会用,自己练习也没有成功过。。。

mkdir

该指令可在Linux系统中创建目录

mkdir [-p] dirname #语法,-P确保了目录实际存在,不存在的就建一个

在这里插入图片描述
PS:大致就是这样,但查询创建的目录,我还没有学习到

rmdir

用于删除空目录

rmdir [-p] dirname #语法,-P是当子目录被删除后使它也成为空目录的话,则顺便一并删除

在这里插入图片描述
PS:很清晰的可以看到当目录非空时,无法删除该目录,只能先将该子目录删掉之后再来删除该目录。

rm

用于删除系统中的文件或目录

rm [选项][文件|目录] rm -i #删除前逐一询问确认 rm -f #即使原档案属性设为只读,也直接删除,无需一一确认 rm -r #将目录及以下的档案逐一删除

在这里插入图片描述
PS:这里rm -r奏效,我去试试root模式下的情况
在这里插入图片描述

cp

复制文件和目录到其他文件中。如果指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该新目录中。若同时指定多个文件或目录,且最后的目的地并非是一个已存在的目录,则会出现错误信息。

cp [选项][源文件|目录][目标文件|目录]
相关选项 功能
-a 此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容
-d 复制时保留链接
-f 覆盖已经保存的目标文件而不给出提示
-i 在覆盖文件之前给出提示,要求用户确认是否覆盖,回答”y“时目标文件将被覆盖
-p 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中
-r 若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件
-l 不复制文件,只是生成链接文件。
mv

对文件和目录更改名称以及移动文件和目录的路径

mv [选项][源文件|目录][目标文件|目录]
相关选项 功能
-i 若指定目录已有同名文件,则先询问是否覆盖旧文件
-f 在mv操作要覆盖某已有的目标文件时不给任何提示
locate

用于查找符合条件的文件,不搜索具体目录,而是搜索一个数据库(/var/lib/located),这个数据库中含有所有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用该命令之前,先使用updatedb命令,手动更新数据库。

locate [option] filename
相关选项 功能
-r 使用正则表达式作为搜索条件
-i 忽略大小写
-c 显示查找到的条目数
-d 用DBPATH替代默认的数据库

在这里插入图片描述

find

在目录结构中搜获文件,并执行指定的操作。从指定的目录开始,递归地搜索其各个子目录,查找满足寻找条件我文件,可以指定文件的名称、类别、时间、大小以及权限等不同信息的组合,只有完成相符的文件才会被列出来。

find [路径][选项]
相关选项 功能
-name 查找名为filename的文件
-perm 按执行权限来查找
-user username 按文件属主来查找
-group groupname 按组来查找
-mtime -n +n 按文件更改时间来查找文件,-n指n天之内,+n指n天之前
-atime -n +n 按文件访问时间来查GIN:Opx
-ctime -n +n 按文件创建时间来查找文件,-n指n天之内,+n指n天之前
-nogroup 查无有效属组的文件
-nouser 查无效属主的文件
-newer f1 !f2 查更改时间比f1新但比f2旧的文件
-type b/d/c/p/l/f 查是块设备、目录、字符设备、管道、符号链接、普通文件
-size n[c] 查长度为n或n字节的文件
-depth 使查找在进入子目录前先行查找完本目录
-fstype 查位于某一类型文件系统中的文件
- mount 查文件时不跨越文件系统mount点
-follow 如果遇到符号链接文件,就跟踪链接所指的文件
-cpio % 查位于某一类型文件系统中的文件
-cpio] 对匹配的文件使用cpio命令,将他们备份到磁带设备中
-prune 忽略某个目录
-amin 查找在系统中最后N分钟访问的文件
- mmiin 查找在系统中最后N分钟里修改过的文件

按照文件名检索

find -name #按照文件名搜索 find -iname #按照文件名搜索,不区分文件名大小 find -inum #按照inode号搜索

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
PS:进来root模式下进行该指令,这样应该有足够的权限查询

根据文件类型检索

find -type f #在当前工作目录下查找所有普通文件 find -type d #在当前工作目录下查找所有目录文件 find /dev -type c #从dev目录下查找所有字符设备文件 find /dev -type b #从dev目录下查找所有块设备文件 find /dev -type b -iname '*sd*' #从dev目录下查找块设备和文件名包含sd

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
根据所有者和所属组搜索

find -user root #在当前目录下查找所有者是root的文件 find -user 用户名 #在当前目录下查找所有者是对应用户名的文件 find / -group root #在根目录下查找所属组为root文件 find / -nouser #在根目录下查找所有无主文件 find / -nogroup #在根目录下查找所有没有所属组的文件

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
PS:个人建议,第二个查找用户名对应的指令,别轻易尝试,有点多

根据文件搜索大小搜索

find / -size +50m find / -size -50m find / -size +50m -size -50m find / -nouser find . -empty

在这里插入图片描述
在这里插入图片描述
PS:前面三个没有成功,empty尽量别试

根据时间查找文件和目录(天为单位)

find / -mtime -5 #查找第五天之内修改过的文件 find / -mtime 5 #查找第五天修改过的文件 find / -mtime +5 #查找五天以前修改过的文件 find / -mtime 0 #查找24小时修改过的文件

五天内修改的文件挺多
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
PS:我昨天才重装的虚拟机,我也不知道会有这么多修改的文件

根据时间查找文件和目录(分钟为单位)

find / -mmin -5 #查找五分钟之内修改过的文件 find / -mmin 5 #查找第五分钟修改过的文件 find / -mmin +5 #查找五分钟以前修改过的文件 find / -mmin 1 #查找一分钟修改过的文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
PS:我也不知道,几分钟之内,我修改的文件有这么多,多半是自动记录或者修改的吧,我不背锅。。。

按照权限搜索

相关选项 功能
-perm 权限模式 查找文件权限刚好等于“权限模式”的文件
-perm -权限模式 查找文件权限刚好全部包含“权限模式”的文件
-perm +权限模式 查找文件权限刚好包含“权限模式”的任意一个权限的文件

逻辑运算符

相关选项 功能
-a and逻辑与
-o or逻辑或
-not not逻辑非

对查找出来的文件执行其他命令

- exec cpmmand {}\; #command代表要执行的命令,{}代表前面find查找出来的文件名,;exec语句结束符号,必须要,不能省略 whereis

用于查找文件,只能用于查找二进制文件、源代码文件和man手册页。

whereis [option] filename
相关选项 功能
-b 只查找
-B 只在设置的目录下查找二进制文件
-f 不显示文件名前的路径名称
-m 只查找说明文件
-M 只在设置的目录下查找说明文件
-s 只查找原始代码文件
-S 只在设置的目录下查找原始代码文件
-u 查找不包含指定类型的文件

在这里插入图片描述

which

在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。即使用该命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

which [option] filename
相关选项 功能
-n 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名
-p 与-n参数相同,但此外包括了文件的路径
-w 指定输出时栏位的宽度
-V 显示版本信息举例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

链接文件


作者:龙渊客



Linux 文件管理

需要 登录 后方可回复, 如果你还没有账号请 注册新账号