【Linux】目录和文件相关的命令,补充:centos7系统目录结构

发布于:2024-05-06 ⋅ 阅读:(27) ⋅ 点赞:(0)

【Linux】Linux操作系统的设计理念之一就是“一切皆文件”(Everything is a file),即将设备、文件等都当作“文件”处理。

“文件”主要类型有:目录(即文件夹),链接文档(即快捷方式),文件。

可以通过命令对“文件”进行操作。可使用man查看某命令的文档,例如:man ls。可使用--help查看某命令有哪些选项,例如:ls --help。

一、目录相关的命令

(1)目录的新建、删除等
说明  命令 备注
查看当前目录 pwd pwd:print working directory
查看当前目录下所有文件和目录 ls ls:list
查看指定目录下所有文件和目录 ls 目录名
创建 目录 mkdir 目录名 mkdir:make directory
创建 多个目录 mkdir 目录名1 目录名2 ...
创建 多级目录 mkdir -p 目录名/子目录名
目录 重命名 mv 目录名 新目录名

mv:move

移动 目录 mv 目录名 目标路径
复制 目录 cp -a 目录名 目标路径 cp:copy
删除 目录(有提示,确认删除需输入y) rm -r 目录名 rm:remove
删除 目录(没有提示) rm -rf 目录名
删除 多个目录(没有提示) rm -rf 目录名1 目录名2 ...
删除 空目录 rmdir 目录名 rmdir:remove directory
删除 多级目录(最后的子目录为空则删除,再上级目录为空则删除,若目录不为空则停止) rmdir -p 上级目录名/子目录名

注:在当前目录下新建、删除等。也可以指定目录下新建、删除等 。

例如:往tmp目录下创建test目录:mkdir /tmp/test

 

 注意:linux 删除目录或文件后将无法找回,删除时需谨慎。

rmdir只能删除空目录,rm -r 可以删除目录及目录下的内容。

删除目录时会提示是否确认删除,输入y表示删除,若直接回车则不会删除。若有选项 -f 表示强制删除,不会提示。

(2)切换目录:cd
说明 命令 备注
切换到上级目录 cd .. cd:change directory
切换到根目录 cd /
切换到用户的家目录(普通用户在/home目录下,root用户在/root目录) cd ~(键盘esc下面的键)
切换到上一次所在目录 cd -
切换到目标目录(绝对路径,路径从根目录开始) cd /xx/xx/xx
切换到目标目录下(相对路径,当前目录中的目录) cd 目标目录名
切换到目标目录(相对路径,当前目录往下找) cd ./xx/xx
切换到目标目录(相对路径,当前目录往上级找) cd ../../..

(3)查看目录下所有文件和目录:ls
ls命令的常用选项 说明
-a 包括隐藏文件(以"."开头的文件)
-A 同-a,但不显示".."上级目录和"."当前目录
-F 区分文件类型(末尾"/":目录。末尾"@":链接文档)
-l(小写字母l) 显示文件详细信息(包括文件权限、大小、时间(mtime)等)。
-S(大写S) 按文件大小排序:从大到小。一般与-l或-lh一起用,即-lS或-lhS。
-h 文件大小以人类可读的方式显示。一般与-l或-lS一起用,即-lh或-lhS。
-t 时间显示修改时间(mtime)。一般与-l一起用,即-lt,按时间(mtime)排序:最新的在前。
-u 时间显示访问时间(atime)。与-l一起用,按文件名排序。与-lt一起用,按atime排序。
-c 时间显示改动时间(ctime)。与-l一起用,按文件名排序。与-lt一起用,按ctime排序。
-1(数字1) 一行显示一个文件或目录

注:ls -l 与 ll 效果相同。(ls -l(小写字母l),ll(两个小写字母l)) 

 

ls除了可以查看目录下所有文件和目录,也可以查看当前目录或指定目录的属性信息。

查看当前目录的属性信息 ls -ld
查看指定目录的属性信息。 ls  -ld 目录名

补充:查看当前目录下所有txt文件:ls *.txt

(4)用树状形式显示目录的所有文件和目录:tree
# 使用yum安装tree
yum install tree -y
(以树状形式)查看当前目录下的所有内容 tree
(以树状形式)查看指定目录下的所有内容 tree 目录名

二、文件相关的命令

(1)文件的新建、删除等
创建 文件 touch 文件名
创建 多个文件 touch 文件名1 文件名2 ...
文件 重命名 mv 文件名 新文件名
移动 文件 mv 文件名 目标路径
复制 文件 cp 文件名 新文件名
复制 指定目录下所有文件 cp 目录名/* 目标路径
删除 文件(有提示,确认删除需输入y) rm 文件名
删除 文件(没有提示) rm -f 文件名
删除 多个文件 rm -f 文件名1 文件名2 ...
删除 当前目录下所有文件 rm -f *
删除 当前目录下所有文件和目录 rm -rf *

 注意:linux 删除目录或文件后将无法找回,删除时需谨慎。

rm 删除文件。 rm -r 删除目录。

每删除一个文件都会提示是否确认删除,输入y表示删除,若直接回车则不会删除。若有选项 -f 表示强制删除,不会提示。

(2)查找文件:find
查找深度 -maxdepth 没有设置深度,则最大深度查找。-maxdepth 1 只在目录所在层级查找,不会往子目录查找
按文件类型查找 -type f 文件,d 目录,l 链接文档
按文件名称查找 -name -name 区分大小写。若要不区分大小写,则-iname。
按文件大小查找 -size

单位:k,M,G等,没有单位,默认b(512B)。

- 小于。+ 大于。两个数据之间,可用-and。

例如:大于2k并小于5k:-size +2k -and -size -5k

按访问时间(atime)查找 -atime

-1:1天之内。+1:1天之前。两个数据之间,可用-and。

例如:1天之前 5天之内:-atime +1 -and -atime -5

按修改时间(mtime)查找 -mtime 同-atime
按改动时间(ctime)查找 -ctime 同-atime
按所属用户查找 -user
按所属用户组查找 -group
按文件权限查找 -perm

访问时间(atime,access time):文件中内容 最后一次被访问的时间。

修改时间(mtime,modify time):文件中内容 最后一次被修改的时间。

改动时间(ctime,change time):文件 最后一次被改动(位置移动、权限更改等)的时间。

查找到文件后,可使用-exec对文件再执行操作。格式为:find ...  -exec  命令  \;

注意:-exec以分号";"作为终止符,分号前需加"/"。因为分号有特殊含义,是命令拼接符,连接多个命令,各命令之间的执行互不影响。

(3)查看文件详细信息:stat
查看文件详细信息 stat 文件名

三、压缩、解压缩

(1)tar
  • 文件扩展名.tar.gz。
  • 可以只归档不压缩。可以压缩目录。
  • tar归档/压缩到一个.tar.gz文件中。会保留原文件。
tar命令的常用选项 说明
-c create,建立新的备份文件
-f 指定备份文件
-z 通过gzip指令处理备份文件
-x 从备份文件中还原文件
-t 列出备份文件的内容
-v version,显示指令执行过程,即列出处理的文件

压缩文件:tar  -zcf  压缩后的文件名  需压缩的文件(可多个文件或目录) 

解压缩文件:tar -zxf  需解压缩的文件名

归档文件(不压缩):tar -cf  归档后的文件名  需归档的文件 (可多个文件或目录) 

还原归档文件:tar -xf  需还原的文件名

注意:

归档是将多个文件或目录打包到一个文件中,文件大小不会压缩。

若想要压缩或解压缩时看到哪些文件被处理,可加-v,例如:-zcvf,-zxvf。

 

(2)gzip
  • 文件扩展名.gz。
  • gzip只能压缩文件,不能压缩目录。若要压缩目录,需"-r"且只会压缩目录下的文件。
  • gzip每个文件压缩一个.gz文件。默认不会保留原文件,若要保留原文件,需"-c"且输出重定向">"。
gzip命令的常用选项 说明
-d 解压缩
-r 递归压缩目录下的文件
-c 保留原文件(需输出重定向)
-v 显示指令执行过程,即列出处理的文件

(3)zip,unzip
  • 文件扩展名.zip。
  • zip压缩文件,unzip解压缩,都保留原文件。
  • zip也可以压缩目录。压缩到一个.zip文件。
# 使用yum安装zip, unzip
yum install zip unzip -y
zip的常用选项 说明(zip:压缩文件)
-r 递归压缩目录下的所有文件和目录
-q 不显示指令执行过程,即不列出处理的文件
-v 显示指令执行过程或显示版本信息
-d 从压缩文件中删除指定文件

unzip的常用选项 说明(unzip:解压缩)
-q 不显示指令执行过程,即不列出处理的文件
-v 显示指令执行过程或显示版本信息
-l 查看压缩文件中的文件
-n 解压缩后不覆盖原文件
-o 解压缩后覆盖原文件

补充:centos7系统的目录结构:

  • /bin:binaries,二进制文件(命令文件等),普通用户也可以用的命令。(重要)
  • /dev:devices,硬件设备控制文件。(重要)
  • /home:系统在该目录下为每个普通用户创建一个用户自己的主目录。
  • /lib64:library 64位,动态链接共享库(库文件.so文件)。类似Windows下的DLL文件。(重要)
  • /mnt:mount,用户临时挂载其他文件系统(光驱等)。
  • /proc:process,所有进程的目录,虚拟的目录,是系统内存的映射。(重要)
  • /run:程序运行时产生的临时文件。
  • /srv:项目源代码,存放服务启动之后需要提取的数据。
  • /tmp:temporary,存放临时文件。
  • /var:variable,变动文件(日志,网络文件、缓存等)。(重要)
  • /boot:开机时操作系统自动启动的加载文件。(重要)
  • /etc:etcetera,系统配置文件和子目录,类似于Windows下的注册表。(重要)
  • /lib:library 32位,动态链接共享库。类似Windows下的DLL文件。(重要)
  • /media:系统会把自动识别的U盘、光驱等挂载到该目录。
  • /opt:optional,主机额外安装软件可存放在该目录。
  • /root:超级管理员(又称超级用户)的主目录。(重要)
  • /sbin:super user binaries,超级管理员使用的系统管理程序。(重要)
  • /sys:system,系统功能目录,是内核设备树的直观反映。类似/proc目录但结构不同(重要)
  • /usr:unix shared resource,共享资源。类似于Windows下的Program Files目录。

/usr/bin:系统用户使用的应用程序。

/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。

/usr/src:内核源代码默认的放置目录。