一文读懂Linux运维常用命令之文件管理(下)

其他相关博文:

一文读懂Linux运维常用命令之文件管理(上)

一文读懂Linux运维常用命令之用户管理

目录

 一、文件权限管理

1、chmod

(1)、文件新增权限

1)文件所有者新增权限

2)文件所有者、所有者用户组新增权限

(2)、文件取消权限

1)文件所有者取消权限

2)文件所有者、所有者用户组取消权限

(3)、目录递归新增权限

(4)、数字方式更改权限

2、chown

(1)、变更文件所属用户

(2)、变更文件所属用户及用户组

(3)、变更目录所属用户

(4)、变更目录所属用户及用户组(递归)

二、文件解压缩管理

1、zip/unzip

(1)、zip

1)、压缩单个文件

2)、压缩多个文件

3)、递归压缩目录

4)、压缩并设置密码

5)、压缩时排除指定文件

(2)、unzip

1)解压无密码zip文件

2)解压有密码zip文件

2、gzip/gunzip

(1)、gzip

1)压缩单个文件

2)显示压缩文件详细信息

3)解压文件

4)递归压缩目录

(2)、gunzip

1)解压单个文件

2)递归解压目录下的所有压缩文件

3、bzip2/bunzip2

(1)、bzip2

1)压缩文件

2)压缩文件并保留原始文件

3)解压文件

(2)、bunzip2

1)解压文件

2)解压文件并保留源压缩文件

4、tar

(1)、创建归档文件

1)创建归档文件

2)创建归档文件并用gzip压缩

3)创建归档文件并用bzip2压缩

(2)、解压归档文件

2)解压使用gzip压缩的归档文件

3)解压使用bzip2压缩的归档文件


 更多精彩博文详见:

《Linux系统应用运维》专栏总目录(持续更新)

 一、文件权限管理

        文件的权限分为三级,由所有者权限、所有者用户组权限、其他用户权限组成。所有者使用小写u表示,所有者用户组使用小写g表示,其他用户使用小写o表示。

        每级权限都可以包含可读、可写、可执行权限。可读权限使用小写r表示,可写权限使用小写w表示,可执行权限使用小写x表示。如rwx表示在该权限级别上具有可读、可写、可执行的权限;rw-表示在该权限级别上具有可读、可写的权限;r--表示在该权限级别上只有可读的权限。

        可读、可写、可执行权限通常还习惯使用数字表示。可读权限r,使用数字4表示;可写权限w,使用数字2表示;可执行权限x,使用数字1表示。可读、可写、可执行三个权限数值的和即为该级权限的数字。如某级权限为rwx,则该级权限使用数字表示为7,即4+2+1=7;如某级权限为rw-,则该级权限使用数字表示为6,即4+2+0=6;如某级权限为r--,则该级权限使用数字表示为6,即4+0+0=4;如某级权限为r-x,则该级权限使用数字表示为5,即4+0+1=5。

        如下图所示,对于test01.txt文件,该文件的所有者具有rwx权限,即可读、可写、可执行权限,使用数字表示为7;所有者用户组具有rw-权限,即可读、可写权限,使用数字表示为6;其他用户具有r--权限,即可读权限,使用数字表示为4。所以,对于test01.txt文件,可以使用764来表示该文件的权限信息。


1、chmod

chmod命令用于控制文件或者目录的可读、可写、可执行权限。只有文件、目录的所有者以及超级用户可以修改文件、目录的权限。语法格式如下:

chmod [选项] [u,g,o,a] [+,-] [r,w,x] [文件名称 | 目录名称]

选项说明:

  • -f:表示若该文件的权限无法被更改也不显示错误讯息。
  • -v:表示显示该文件的权限变更详细信息。
  • -R:表示对当前目录下的全部文件与子目录进行权限变更(即以递归方式变更)。
  • --help:显示帮助说明。

参数说明:

  • [u,g,o,a]:u表示该文件的拥有者,g表示该文件拥有者的同组用户;o表示其他用户;a表示包括u、g、o这三者。
  • [+,-]:+表示增加对应的权限;-表示取消对应的权限。
  • [r,w,x]:r表示可读权限;w表示可写权限;x表示可执行权限 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。

(1)、文件新增权限

1)文件所有者新增权限

文件test02.txt的所有者新增可执行权限。

[root@node01 data_test]# chmod u+x test02.txt

2)文件所有者、所有者用户组新增权限

文件test03.txt的所有者新增可执行权限,所有者用户组新增可写权限。

[root@node01 data_test]# chmod u+x,g+w test03.txt

(2)、文件取消权限

1)文件所有者取消权限

文件test02.txt的所有者取消可执行权限。

[root@node01 data_test]# chmod u-x test02.txt

2)文件所有者、所有者用户组取消权限

文件test03.txt的所有者取消可执行权限,所有者用户组取消可写权限。

[root@node01 data_test]# chmod u-x,g-w test03.txt

(3)、目录递归新增权限

对/root/data_test目录下的全部文件及子目录的u、g、o都新增可写权限。

[root@node01 ~]# chmod -R a+w /root/data_test/

(4)、数字方式更改权限

将test01.txt文件的权限由766修改为644。

[root@node01 data_test]# chmod 644 test01.txt

2、chown

chown命令用于变更文件、目录的所属用户或者所属用户组,只有超级用户才能执行chown命令。语法格式如下:

chown [选项] username[:groupname] [文件名称 | 目录名称]

选项说明:

  • -f:忽略命令执行的错误讯息。
  • -v:显示变更的详细信息。
  • -R:表示对当前目录下的全部文件与子目录进行变更(即以递归方式变更)。
  • --help:显示帮助说明。

参数说明:

  • username:新的文件、目录所属者的用户名称或者用户UID。
  • groupname:新的文件、目录所属用户组的用户组名称或者GID。

(1)、变更文件所属用户

变更/root/data_test/test01.txt文件的所属用户为newuser用户。

[root@node01 ~]# chown newuser /root/data_test/test01.txt

(2)、变更文件所属用户及用户组

变更/root/data_test/test02.txt文件的所属用户为newuser用户,所属用户组为elasticsearch用户组。

[root@node01 ~]# chown newuser:elasticsearch /root/data_test/test02.txt

(3)、变更目录所属用户

变更/root/data_test/目录的所属用户为newuser用户,但是/root/data_test/目录下的文件及子目录不会改变。

[root@node01 ~]# chown newuser /root/data_test/

(4)、变更目录所属用户及用户组(递归)

变更/root/data_test/目录下的所有文件及子目录的所属用户为elasticsearch用户,所属用户组为elasticsearch用户组。

[root@node01 ~]# chown -R elasticsearch:elasticsearch /root/data_test/*

注意:此命令不会变更/root/data_test/目录的所属用户及用户组。


二、文件解压缩管理

1、zip/unzip

(1)、zip

zip命令用于压缩文件,压缩后的文件后缀名为“.zip”。与gzip命令或者bzip2不同的是,zip命令可以压缩多个文件或整个目录,并保留文件的目录结构。CentOS系统使用“yum install -y zip”命令安装zip工具。

语法格式如下:

zip [选项] [压缩文件名称.zip] [需要压缩的文件 | 需要压缩的目录]

  • -r:递归压缩目录及其子目录中的所有文件。
  • -e:为压缩文件设置密码保护。
  • -q:静默模式,不显示压缩过程。
  • -v:显示详细的压缩过程。
  • -x:排除某些文件或目录不进行压缩。

1)、压缩单个文件

将test01.txt文件压缩为test01.zip

[root@node01 data_test]# zip test01.zip test01.txt

2)、压缩多个文件

将test02.txt、test03.txt两个文件压缩为test0203.zip

[root@node01 data_test]# zip test0203.zip test02.txt test03.txt

3)、递归压缩目录

递归压缩/root/data_test/目录为data_test.zip

[root@node01 ~]# zip -r data_test.zip /root/data_test/

4)、压缩并设置密码

将test04.txt文件压缩为test04.zip,并设置密码为123456

[root@node01 data_test]# zip -e test04.zip test04.txt

5)、压缩时排除指定文件

递归压缩/root/data_test/目录为data_test.zip,并排除/root/data_test/目录下的所有以“.log”结尾的文件。

[root@node01 ~]# zip -r data_test.zip /root/data_test/ -x "*.log"

(2)、unzip

unzip命令用于解压缩后缀名为“.zip” 格式的压缩文件。CentOS系统使用“yum install -y unzip”命令安装zip工具。

1)解压无密码zip文件

解压test0203.zip文件。

[root@node01 testDir]# unzip test0203.zip

2)解压有密码zip文件

解压有密码的test04.zip文件。执行解压命令后输入test04.zip文件的密码即可。

[root@node01 testDir]# unzip test04.zip

2、gzip/gunzip

(1)、gzip

gzip命令用于压缩单个文件,压缩后的文件后缀名为“.gz”。需要注意的是,执行gzip命令后,原文件会删除,只留下压缩后的.gz文件。语法格式如下:

gzip [选项] [文件名称 | 目录名称]

  • -d:解压.gz文件。相当于使用gunzip命令。
  • -r:递归压缩当前目录下的所有文件及子目录中的文件。
  • -v:显示详细的压缩或解压过程。
  • -l:显示.gz压缩文件的详细信息,如压缩率、原始大小等。
  • -t:测试压缩文件的完整性,如果文件完整且无损坏,则不会有输出,否则会提示错误。

1)压缩单个文件

压缩test01.txt文件。

[root@node01 data_test]# gzip test01.txt

2)显示压缩文件详细信息

显示压缩文件test01.txt.gz的详细信息。

[root@node01 data_test]# gzip -l test01.txt.gz

3)解压文件

解压test01.txt.gz文件。

[root@node01 data_test]# gzip -d test01.txt.gz

4)递归压缩目录

递归压缩/root/data_test/目录下的所有文件及子目录中的所有文件。

注意,此处不压缩目录,只压缩目录中的文件。如果需要压缩多个文件或整个目录,通常先用tar命令对目录进行归档,再用gzip命令进行压缩。

[root@node01 ~]# gzip -r /root/data_test/

(2)、gunzip

gunzip命令用于解压由gzip命令压缩的.gz文件。语法格式如下:

gunzip [选项] [压缩文件名称]

  • -c:将解压后的文件内容输出到标准输出(而不是写入文件)。
  • -f:强制解压,即使当前目录下已经存在同名的解压文件。
  • -l:显示压缩文件的详细信息,包括压缩前后的文件大小、压缩比等。
  • -r:递归地解压缩指定目录下的所有文件。
  • -t:测试压缩文件的完整性,而不进行实际的解压缩操作。
  • -v:显示解压文件的过程。

1)解压单个文件

解压文件test.txt.gz

[root@node01 testDir]# gunzip test.txt.gz

2)递归解压目录下的所有压缩文件

递归解压/root/data_test/目录下的所有压缩文件及子目录下的所有压缩文件。

[root@node01 ~]# gunzip -r /root/data_test/

3、bzip2/bunzip2

(1)、bzip2

bzip2命令用于压缩文件,CentOS系统使用“yum install -y bzip2”命令安装bzip2工具。注意,bzip2命令无法递归压缩目录。语法格式如下:

bzip2 [选项] [文件名称 | 目录名称]

  • -d:解压.bz2文件,相当于使用bunzip2命令。
  • -k:保留原始文件,不删除。
  • -v:显示详细的压缩过程。
  • -t:测试压缩文件的完整性。
  • -h:查看bzip2命令更多帮助选项。

1)压缩文件

压缩test01.txt文件

[root@node01 data_test]# bzip2 test01.txt

2)压缩文件并保留原始文件

压缩test02.txt文件并保留原始文件。

[root@node01 data_test]# bzip2 -k test02.txt

3)解压文件

解压test01.txt.bz2文件

[root@node01 data_test]# bzip2 -d test01.txt.bz2

(2)、bunzip2

bunzip2命令用于解压.bz2格式的压缩文件。语法格式如下:

bunzip2 [选项] [压缩文件名称] 

  • -f:强制解压,覆盖已有的同名文件。
  • -k:保留源压缩文件。
  • -v:显示解压过程。

1)解压文件

解压 test01.txt.bz2文件。

[root@node01 data_test]# bunzip2 test01.txt.bz2

2)解压文件并保留源压缩文件

解压test02.txt.bz2文件并保留源压缩文件。

[root@node01 data_test]# bunzip2 -k test02.txt.bz2

4、tar

tar命令用于将多个文件和目录打包成一个归档文件,归档后的文件后缀为“.tar”。tar命令还可以与压缩工具(gzip或bzip2)结合使用,创建压缩的归档文件(如.tar.gz或.tar.bz2)。语法格式如下:

tar [选项] [归档文件名称] [源文件名称 | 源目录名]

  • -f:归档文件名称。
  • -c:创建一个新的归档文件。
  • -x:解压归档文件。
  • -z:使用gzip工具压缩归档文件。
  • -j:使用bzip2压缩归档文件。
  • -v:显示归档过程。
  • --help:显示tar命令更多选项。

(1)、创建归档文件

1)创建归档文件

将test01.txt、test02.txt、test03.txt、test04.txt文件及testDir目录归档为test.tar文件。

[root@node01 data_test]# tar -cvf test.tar test01.txt test02.txt test03.txt test04.txt testDir/

2)创建归档文件并用gzip压缩

将test01.txt、test02.txt、test03.txt、test04.txt文件及testDir目录归档并使用gzip工具压缩为test.tar.gz文件。

[root@node01 data_test]# tar -czvf test.tar.gz test01.txt test02.txt test03.txt test04.txt testDir/

3)创建归档文件并用bzip2压缩

将test01.txt、test02.txt、test03.txt、test04.txt文件及testDir目录归档并使用bzip2工具压缩为test.tar.bz2文件。

[root@node01 data_test]# tar -cjvf test.tar.bz2 test01.txt test02.txt test03.txt test04.txt testDir/

(2)、解压归档文件

1)解压归档文件

解压归档文件test.tar

[root@node01 testDir]# tar -xvf test.tar

2)解压使用gzip压缩的归档文件

解压使用gzip压缩的归档文件test.tar.gz

[root@node01 testDir]# tar -zxvf test.tar.gz

3)解压使用bzip2压缩的归档文件

解压使用bzip2压缩的归档文件test.tar.bz2

[root@node01 testDir]# tar -jxvf test.tar.bz2


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野熊佩骑

您的鼓励是我持续创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值