Linux文件操作

Linux 文件与目录

1. 修改文件属性与权限

chgrp:修改文件所属用户组;
chown:修改文件拥有者;
chmod:修改文件的权限。

1.1 修改文件用户组

修改文件所属用户组时,用户组名必须存在于/etc/group文件中:

chgrp [-R] 用户组名 dirname/filename

[-R]:进行递归修改,连同子目录下的所有文件、目录都更改成新的用户组。

1.2 修改文件拥有者

与修改用户组类似,修改文件拥有者时需要保证拥有者在/etc/passwd文件中:

chown [-R] 账号名称[:用户组名称] dirname/filename

1.3 修改文件权限

1.3.1 数字类型修改权限

Linux文件的基本权限有9个,拥有者、所属群组和其他人三种身份各自有自己的读、写和执行三种权限,文件的权限字符为:[-rwxrwxrwx],这九个权限三个为一组,可以使用数字代表各个权限:

r: 4
w: 2
x: 1

当一个文件的权限字符为[-rwxr-x---]时,每种身份对应的权限数字为:

owner = rwx = 4 + 2 + 1 = 7
group = r-x = 4 + 0 + 1 = 5
others = --- = 0 + 0 + 0 =0

因此当我们修改权限时,可以使用如下命令:

chmod [-R] xyz dirname/filename
注:
xyz :每个字母代表一种身份权限的对应数字之和
-R :进行递归修改

例如将test.txt文件设置为所有身份都拥有所有权限:

chmod 777 test.txt

1.3.2 符号类型修改权限

我们使用u、g、o代表三种用户身份,a表示全部身份,读写执行权限用r、w、x表示,那么命令可以用以下形式表示:

chmod u=rwx,go=rx test.txt
注:
u=rwx,go=rx是连在一起的,中间没有空格

文件的w权限只能修改删除文件内容,目录的w权限表示可以在该目录下新建文件、删除文件与子目录、修改文件名字、移动该目录内文件及子目录位置。

2. 文件的复制、删除与移动

复制文件可以使用cp命令,它还可以实现建立链接文件、比对两个文件的新旧而予以更新以及复制整个目录;移动文件可以使用mv命令,也可以用它来做文件的重命名;rm命令可以实现文件的删除。

2.1 cp(复制文件或目录)

cp [-options] 源文件(source) 目标文件(destination)
-f:为强制(force)的意思,若目标文件已经存在且无法开启,则删除后再尝试一次
-i:若目标文件已经存在,在覆盖时会先询问操作的进行
-p:连同文件的属性(权限、用户、时间)一起复制过去(常用于备份)
-r:递归复制,用于复制目录
-u:若目标文件已经存在,且源文件比较新才会更新

注:
如果源文件有两个及以上,那么最后一个目标文件必须是一个目录:

cp source1 source2 source3 ... directory

2.2 rm(删除文件或目录)

rm [-options] 文件或目录
-f:就是force,忽略不存在的文件,不会出现警告信息
-r:递归删除,用于删除目录
-l:交互模式,在删除前会询问是否操作

2.3 mv(移动文件或目录,或重命名)

mv [-options] 源文件 目标文件
-f:force的意思,如果目标文件已经存在,不会询问而直接覆盖
-i:若目标文件已经存在,就会询问是否覆盖
-u:若目标文件已经存在,且源文件比较新才会更新
如果有多个源文件,那么目标文件必须是一个目录

文件的压缩与打包

1. 压缩

Linux系统文件的压缩命令最常用的是gzip和bzip2,所产生的压缩文件后缀名分别为.gz和.bz2。具体命令如下:

gzip [-dvn] 文件名
-d:解压缩参数,例如:
gzip -d 1.txt.gz
-v:可以显示出原文件/压缩文件的压缩比信息
-n:n为数字,代表压缩等级,-1最快,压缩比最差,-9最慢,压缩比最好,默认-6。

非压缩文件可以用cat命令查看文件内容,压缩文件可以用zcat命令查看压缩文件的内容:

cat 1.txt
zcat 1.txt.gz

bzip2的用法和gzip的用法类似,压缩比更高,消耗的时间更长,命令如下:

bzip2 [-dvn] 文件名
参数意义与gzip相同

查看该类型压缩文件使用bzcat:

bzcat 1.txt.bz2

2. 打包命令tar

之前的两个压缩工具只能针对单个文件进行压缩,对目录的压缩也是对目录内每个文件进行单独压缩,Linux中将多个文件或目录打包成一个大文件的工具叫tar。

tar [-z|-j] [cv] [-f 待建立的新文件名] 要被压缩的文件名 ...    <=== 打包与压缩
tar [-z|-j] [tv] [-f 既有的tar文件名]                         <=== 查看文件名
tar [-z|-j] [xv] [-f 既有的tar文件名] [-C 目录]               <=== 解压缩
-z:通过gzip的技术及逆行压缩/解压缩,此时文件名最好为*.tar.gz。
-j:通过bzip2的技术进行压缩/解压缩,此时文件名最好为*.tar.bz2。
-c:建立打包文件,可搭配-v查看过程中被打包的文件名。
-t:查看打包好的文件里包含哪些文件名。
-x:解包或解压缩的功能,可以搭配-C在特定目录解压。
-v:在压缩/解压缩的过程中将正在处理的文件名显示出来。
-f:-f后面要立刻接要被处理的文件名
-C:指定目录
posted @ 2021-09-12 17:12  litack  阅读(115)  评论(0)    收藏  举报