1 文件目录
1.1 路径
绝对路径 : /+名称组合 从根目录开始的路径
相对路径: 不以/开头的路径
显示当前目录的绝对路径 pwd: /home/jackie_liu/music/zhoujielun/yequ
两个特殊的相对路径: . 你的当前目录 ; .. 表示你的父目录
第一次登陆SHELL 进入的是根HOME目录 ,
目前位置:当前工作目录,每个shell都有一个当前的工作目录
最顶级目录 根目录 用/表示
1.2 目录:
cd 或者cd ~ 命令: 切换到 home 目录
cd - 切换到以前的目录
cd /home/jackie_liu/music 直接切换工作目录
2 列出文件夹:ls
只能从根目录进入:
相对路径:ls music
绝对路径:ls /home/scott/music
任意目录切换:
ls ~/music/zhoujielun (文件夹下有子目录才可以切换,如果没有,只能切换到上一层);ls ~/music/pv PV下没有子目录 则切换不成功。
ls ~/videos/*.wmv 以XX格式结尾的目录
ls ~/videos/*just* 查询包含这个单词 tiger_woods_just_did_it.wmv
ls -r 查看子文件夹中的文件列表
ls -1 以单独一列显示内容 Ctrl+c 取消显示方式
ls -m 用逗号分隔的列表显示内容
ls -a查看隐藏的文件和文件夹
ls -F 显示文件的类型 文件后面的“*”(星号)表示该文件 是可执行文件,“/”(斜杠)表示它是一个目录。如果文件名后面没 有任何附加符号,那这个文件就是一个普通的文件
ls -- color 显示颜色
ls -l 显示权限、所有者等详细信息
drwxrwxr-x 3 jackie_liu jackie_liu 4096 Nov 15 18:08 arts
分析 最右边文件名+最后一次修改时间+文件大小+文件所有者,所属组+硬链接,文件包含多少内容+d rwx rwx r-x
一组由第一个字符组成;第二组由第二个到第四个字符组成;第三组 包括第五个到第七个字符组成;第四组,即后一组由第八个到第十 个字符组成
第一组告诉你它是什么类型的文件。前面已经看到-F和--color 选项用不同的方式来展现这一内容,-l也是如此。d表示credentials 是目录,而第一个位置上的–则表示该项是一个文件(即便文件是可 执行的,ls–l仍然只用一个-来表示,所以-F和--color选项可以为你 提供更多的信息)。当然在第一个位置还可能看到其他选项,详细内 容如表2-3所示。
表2-3 权限字符和文件类型
字 符 含 义
- 普通文件 - 可执行文件 d 目录 l 符号链接文件 s 套接字(socket) b 块设备(block device) c 字符设备(character device) p 命名管道(named pipe)
接下来的9个字符(组成第二组、第三组、以及第四组)分别代 表对文件的所有者、文件的组,以及系统中所有其他用户的权限
r表示“允许读取”,w表示“允许改写”(改写意味 着修改和删除), x表示“允许执行”, –则表示“不允许执行这个操作”。 如果原本应该出现r字符的位置,现在出现的是-,则表示“不允许读 取”。这一点对于w和x也同样适用。
组合使用
ls -lf
ls- lf --color
ls -r 以相反的顺序显示列表内容
ls -x 按文件的扩展名排 可以把同一类的文件放在一起展示;
ls -t 按日期和时间排序
ls -s 按文件大小进行排序
ls - h 用K、M和 G显示文件大小 如果文件足够大 都能显示出来 1kb = 1024 字节
3 创建
3.1 创建文本
touch +文件名
touch hepingge.text 创建文件
3.2 创建文件夹
mkdir 996 创建文件夹 ,如果存在文件夹 则会提示 由mkdir命令创建的新目录是赋予所有者读 取、改写、以及执行的权限,而组以及其他任何人则只有读 取和执行的权限
mkdir -p 996/work 创建新目录和任何必要的子目录
单个:
mkdir music
多个:
mkdir piano arts singing,
创建子文件夹:
进入到父文件夹:再创建 mkdir
快捷创建方式:
例如创建和平鸽:
mkdir -p arts/picasso/hepingge
查看创建是否成功:
mkdir -vp zhoujielun/yequ VP可用来创建新目录 子目录
mkdir -v music/zhoujielun/yifuzhiming 只能在已有目录下创建 否则报错
例如:
[jackie_liu@rbtnode1 ~]$ ls
arts music piano singing,
[jackie_liu@rbtnode1 ~]$ mkdir -v 测试/性能
mkdir: cannot create directory ‘测试/性能’: No such file or directory
[jackie_liu@rbtnode1 ~]$ mkdir -vp 测试/性能
mkdir: created directory ‘测试’
mkdir: created directory ‘测试/性能’
[jackie_liu@rbtnode1 ~]$
4 复制
cp hepingge.text heping.text 当前目录复制 名字需要修改
cp heping.text /home/jackie_liu/arts/picasso/hepingge 切换到不同目录 当前目录+要复制的地址绝对路径
cp /home/jackie_liu/arts/picasso/heping.text . 从别的地方切换到当前目录 当前目录用.表示
cp /home/jackie_liu/arts/picasso*.jpg . 通配符 匹配以JPG格式结尾的文件;cp /home/jackie_liu/arts/picasso[1-3].jpg . 前3张图片
cp -v ~/home/jackie_liu/arts/picasso[1-3].jpg . 复制文件时显示执行过程
cp -i /home/jackie_liu/arts/picasso/heping.text . 防止复制时覆盖重要的文件 输入 y n 进行判断 如果是多个文件 一直提示 ctrl +c 结束
cp -r /home/jackie_liu/arts . 文件夹以及子目录切换 外部路径切换到当前目录 cp -r heping.text arts 当前目录下切换不同文件
cp -a 复制文件目录到其他目录以作为完整的备份 a选项可以确保cp命令不会复制符号链接的内容(否则可能会极大地增加复制量),只保存关键的文件属性(例如拥有者、时间戳),并递归处理子目录。
5 移动
mv heping.text meng/ 要移动的目录名后加/ 如果meng 不是目录则移动不成功,防止覆盖 同级别目录移动 ; mv heping.text /home/jackie_liu/music 当前目录移动到别的目录 类似复制的命令
以下这个命令只移动软链接: mv dogs ~/libby;而以下这条命令移动的是软链接所指向的目录: mv dogs/ ~/libby
6 删除
rm hepingge.text 当前目录删除 ;rm /home/jackie_liu/arts/picasso/heping.text 绝对路径删除 不需要在 当前目录
rm *text 通配符的使用 删除多个以text结尾的文件 rm * text 加了个空格 会删除所有的文件 所以应该特别注意
rm-v删除文件时显示执行过程
rm-i 防止删除重要文件 会给出提示 Y统一 N 忽略
rmdir picasso 删除空目录
rmdir: failed to remove ‘picasso’: Directory not empty
rm -Rf 删除文件和非空的目录 -r选项告诉rm命令进入到它发现的每个子目录中去删除文件,而-f选项只是告诉rm命令完成任务但不要因为些细节问题(比如文件夹非空)而烦扰用户。
为root登录时,不要输入rm -Rf /*命令。这样你将删除你的系统
rm -Rf libby*和rm -Rf libby *之间有着巨大的差异。前者会删除工作目录中以libby开头的所有东西,后者会删除任何名称恰好是libby的文件或文件夹,然后再删除目录中的所有其他东西
入rm -Rf .*/*删除以点号.作为名称开始的目录,因为这也匹配..,最终将删除当前工作目录的上级目录上的所有东西
删除带有空格的文件 rm +"文件名" ;删除名称以—开始命名的文件 rm -- -abc
7查找
grep '7745' log.txt |grep '保险'
grep -i '7745' log.txt 查询所有符合条件的
grep -i '短信提醒服务' log.txt | grep -E "1485|6068|0274" log.txt
8 用户
8.1 切换用户
su username 变更其他 用户 “switch user”
who am i 查看当前用户
su jason_yang 切换用户 +输入密码 实际上并没有获得环境变量 就好像既穿上了超人的衣服, 退出Ctrl+c
su -l jason_yang 输入密码 获得其工作的环境变量 拥有了超人一跃冲天的超能力
su +su root + su l root 成为root用户
su – 变更成有环境变量的ROOT用户
8.2拥有者和权限:
su sudo
切换目录 :
[root@localhost home]# su tian
[tian@localhost home]$ groups
1、内容不同:
su命令:用来切换用户,substitute英文含义“代替”的意思。
sudo命令:sudo为superuser do 的简写,即使用超级用户来执行命令,一般是指root用户。
2、用法不同:
su命令:不加用户名默认是切换为root用户,切当前目录不改变,其他环境变量不变。
sudo命令: 查看当前用户可以用sudo执行的命令都有哪些。
3、环境不同:
su命令:切换到root用户,但是并没有转到root用户家目录下,即没有改变用户的环境。
sudo命令:是当前用户切换到root,然后以root身份执行命令,执行完成后,直接退回到当前用户,而这些的前提是要通过sudo的配置文件/etc/sudoers来进行授权。
权限 查看:
drwx------. 2 de de 62 Dec 17 04:03 de
drwx------. 2 others1 others1 62 Dec 17 03:35 others1
drwx------. 2 others2 others2 62 Dec 17 03:35 others2
drwx------. 2 tian tian 62 Dec 17 03:27 tian
drwx------. 2 xi others 62 Dec 17 04:03 xi
drwx------. 2 xiang xiang 62 Dec 17 03:31 xiang
drwx------. 2 yang yang 62 Dec 17 03:31 yang
[root@localhost home]# chmod g+x tian
[root@localhost home]# ll
total 0
drwx------. 2 de de 62 Dec 17 04:03 de
drwx------. 2 others1 others1 62 Dec 17 03:35 others1
drwx------. 2 others2 others2 62 Dec 17 03:35 others2
drwx--x---. 2 tian tian 62 Dec 17 03:27 tian
drwx------. 2 xi others 62 Dec 17 04:03 xi
drwx------. 2 xiang xiang 62 Dec 17 03:31 xiang
drwx------. 2 yang yang 62 Dec 17 03:31 yang
[root@localhost home]#
第一位表示类型,共四个选项(常见的都是前两个):
- 普通文件
d 目录
c 字符设备文件
b 块设备文件
s 符号链接文件
二三四 位代表文件所有者(user)拥有的权限
五六七 位代表组群(group)拥有的权限
八九十 位代表其他人(other)拥有的权限
- 相应权限未被赋予
r 文件可以被读(read)
w 文件可以被写(write)
x 文件可以被执行(可执行文件)
2.权限分配
2.1 指定用户形式
如:chmod a+x file 表示对于文件file,给a(所有用户)分配x(执行权限)
u 代表所有者(user)
g 代表所有者所在的组群(group)
o 代表其他人(other)
a 代表全部的人,也就是包括u,g和o
+ 增加权限
- 删除权限
= 使之成为唯一权限
2.2 数字形式
rwx可以用数字来代替:
-—————— 0
r—————— 4
w—————— 2
x—————— 1
如 chmod 777 file表示对于file,给所有用户分配所有权限
因为777对应的权限表示为-rwxrwxrwx
第一个7代表所有者权限的和,第二个7代表组群权限的和,第三个7代表其他人权限的和
chmod g+x tian 给用户组添加执行权限
chmod a+r others2 给所有的人添加可读权限
chmod o-r a.txt 给其余的人 去掉可读权限
[root@localhost others2]# chmod o-r a.txt
[root@localhost others2]# ll
total 0
-rw-r-----. 1 root root 0 Dec 19 03:45 a.txt
[root@localhost others2]#
chmod u+x a.txt 给所有者添加可执行的权限
chgrp 修改文件或目录属于的用户组 别的用户组的人也可以使用此文件
-rwxr-----. 1 root txy 0 Dec 19 03:45 a.txt
-rw-r--r--. 1 root txy 0 Dec 19 05:01 b.txt
[root@localhost others2]# chgrp -v others2 b.txt
changed group of ‘b.txt’ from txy to others2
[root@localhost others2]# ll
total 0
-rwxr-----. 1 root txy 0 Dec 19 03:45 a.txt
-rw-r--r--. 1 root others2 0 Dec 19 05:01 b.txt
chmod -R 修改目录下文件的全部权限
$ chmod -R 660 *.jpg 修改图像 进行筛选 660 是权限表达的另外一种方式
chmod u[+-]s 设置和清除 suid
[root@localhost bin]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27856 Aug 9 09:39 /usr/bin/passwd
cat /etc/passwd 查看用户信息
-bash: /usr/bin/passwd: Permission denied
原因1:/usr/bin/passwd 权限异常
正常情况下的权限:
ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 34392 2009-05-22 16:03 /usr/bin/passwd
修复命令:
chown root:root /usr/bin/passwd
chmod u=rwx,go=rx,u+s /usr/bin/passwd
chmod -v 4711 /usr/bin/passwd修复权限
Linux 是真正意义上的多用户操作系
8.3 用户和用户组
1、用户(user)的概念
通过前面对Linux 多用户的理解,我们明白Linux 是真正意义上的多用户操作系统,所以我们能在Linux系统中建若干用户(user)。比如我们的同事想用我的计算机,但我不想让他用我的用户名登录,因为我的用户名下有不想让别人看到的资料和信息(也就是隐私内容)这时我就可以给他建一个新的用户名,让他用我所开的用户名去折腾,这从计算机安全角度来说是符合操作规则的;
当然用户(user)的概念理解还不仅仅于此,在Linux系统中还有一些用户是用来完成特定任务的,比如nobody和ftp 等,我们访问LinuxSir.Org 的网页程序,就是nobody用户;我们匿名访问ftp 时,会用到用户ftp或nobody ;如果您想了解Linux系统的一些帐号,请查看 /etc/passwd ;
2、用户组(group)的概念
用户组(group)就是具有相同特征的用户(user)的集合体;比如有时我们要让多个用户具有相同的权限,比如查看、修改某一文件或执行某个命令,这时我们需要用户组,我们把用户都定义到同一用户组,我们通过修改文件或目录的权限,让用户组具有一定的操作权限,这样用户组下的用户对该文件或目录都具有相同的权限,这是我们通过定义组和修改文件的权限来实现的;
举例:我们为了让一些用户有权限查看某一文档,比如是一个时间表,而编写时间表的人要具有读写执行的权限,我们想让一些用户知道这个时间表的内容,而不让他们修改,所以我们可以把这些用户都划到一个组,然后来修改这个文件的权限,让用户组可读,这样用户组下面的每个用户都是可读的;
一般先 cd /home 进入到根目录再进入到 home目录 (一般用来存放用户)
groupadd txy 创建用户组
groupdel txy 删除用户组
groups 显示用户所属的用户组
groupmod (包含修改名称,设置密码)
useradd -G txy tian 添加用户tian(不可中文) 到用户组txy
id tian 查看用户所在的组
[root@localhost home]# id tian
uid=1000(tian) gid=1000(tian) groups=1000(tian),1001(txy)
[root@localhost home]# id others1
uid=1003(others1) gid=1005(others1) groups=1005(others1),1004(others)
[root@localhost home]#
为用户设置密码
[root@localhost home]# passwd tian
Changing password for user tian.
New password:
New password:
BAD PASSWORD: The password is a palindrome
Retype new password:
passwd: all authentication tokens updated successfully.
usermod 示例 – 将一个已有用户增加到一个已有用户组中 ;将用户添加到新用户组中而不必离开原有的其他用户组。
[root@localhost home]# usermod -a -G others xi
[root@localhost home]# id xi
uid=1006(xi) gid=1001(txy) groups=1001(txy),1004(others) 出现2个用户组 主要用户组是txy
如果要同时将 cnzhx 的主要用户组改为 apache,则直接使用 -g 选项:
[root@localhost home]# usermod -g others xi
[root@localhost home]# id xi
uid=1006(xi) gid=1004(others) groups=1004(others),1001(txy) 主要用户组已经改变
[root@localhost home]#
如果要将一个用户从某个组中删除,但是这个时候需要保证 group 不是 user 的主组
[root@localhost home]# gpasswd -d xi txy
Removing user xi from group txy
[root@localhost home]# id xi
uid=1006(xi) gid=1004(others) groups=1004(others)
[root@localhost home]#
9 时间
获取当前时间:date
终端输入命令 date +%D,能够获取当前的年份月份日数
[jackie_liu@rbtnode1 ~]$ date +%D
12/06/19
终端输入命令date +%r, 可以获取当前的时间
[jackie_liu@rbtnode1 ~]$ date +%r
08:35:56 PM
cal -3,可以显示当前本月以及前后两个月的月历
终端输入cal -y ,可以显示整年的月历
uptime,可以查看当前系统运行的时长
[jackie_liu@rbtnode1 ~]$ date +%Y-%m-%d
2019-12-06
[jackie_liu@rbtnode1 ~]$ date +%Y%_m%_d
201912 6
修改时间
上一级目录 直接touch 将文件时间修改为当前时间
touch -t 修改为任意时间:194508151200 picasso 不需要到秒
如果是00~68,则假设年份的前2位数字是20 如果是69~99,则假设年份的前2位数字是19
touch -t 9211021200 picasso 92 默认假设19 开头
touch -t4011021200 picasso 40 默认20 开头
修改时间 date -s : "2007-08-03 14:15:00"
10 解压和压缩
10.1 zip 命令用来压缩文件
参数:
-A:调整可执行的自动解压缩文件;
-b<工作目录>:指定暂时存放文件的目录;
-c:替每个被压缩的文件加上注释;
-d:从压缩文件内删除指定的文件;
-D:压缩文件内不建立目录名称;
-f:此参数的效果和指定“-u”参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中;
-F:尝试修复已损坏的压缩文件;
-g:将文件压缩后附加在已有的压缩文件之后,而非另行建立新的压缩文件;
-h:在线帮助;
-i<范本样式>:只压缩符合条件的文件;
-j:只保存文件名称及其内容,而不存放任何目录名称;
-J:删除压缩文件前面不必要的数据;
-k:使用MS-DOS兼容格式的文件名称;
-l:压缩文件时,把LF字符置换成LF+CR字符;
-ll:压缩文件时,把LF+cp字符置换成LF字符;
-L:显示版权信息;
-m:将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中;
-n<字尾字符串>:不压缩具有特定字尾字符串的文件;
-o:以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同;
-q:不显示指令执行过程;
-r:递归处理,将指定目录下的所有文件和子目录一并处理;
-S:包含系统和隐藏文件;
-t<日期时间>:把压缩文件的日期设成指定的日期;
-T:检查备份文件内的每个文件是否正确无误;
-u:更换较新的文件到压缩文件内;
-v:显示指令执行过程或显示版本信息;
-V:保存VMS操作系统的文件属性;
-w:在文件名称里假如版本编号,本参数仅在VMS操作系统下有效;
-x<范本样式>:压缩时排除符合条件的文件;
-X:不保存额外的文件属性;
-y:直接保存符号连接,而非该链接所指向的文件,本参数仅在UNIX之类的系统下有效;
-z:替压缩文件加上注释;
-$:保存第一个被压缩文件所在磁盘的卷册名称;
-<压缩效率>:压缩效率是一个介于1~9的数值。
用法
1.将/home/data 这个目录下的所有文件打包压缩为当前目录下的data.zip
zip -q -r data.zip /home/data
2.如果现在在/home 这个目录下,则如下
zip -q -r data.zip data
3.如果在/home/data 这个目录下,则如下
1
zip -q -r data.zip *
-bash: zip: command not found
是因为liunx服务器上没有安装zip命令,需要安装一下即可
linux安装zip命令:
apt-get install zip 或yum install zip
压缩单独文件 :zip +创建文件名称 +要压缩的文件
zip txt.zip a.txt
[root@localhost de]# zip txt.zip a.txt
adding: a.txt (stored 0%) ( 显示压缩节省的空间为0%)
[root@localhost de]# ls
a.txt b.txt c.txt rng txt.zip
[root@localhost de]#
压缩多个文件就需要 压缩目录 以便解压缩得到目录清晰
zip -9 压缩效果 :0表示“一点也不压缩” 1表示“尽快完成压缩,而不需要压缩太多”,9表示“尽可能压缩文件,不介意会为此等待较长的时间” 默认是6
目前计算机性能好 一般都是用最大优先级 9
zip -p -e -p 会在shell历史中看到 -e 则不会
zip -p 123456 直接指定密码
[root@localhost home]# zip -e tian.zip tian 提示
Enter password:
10.2 解压
解压到指定目录 unzip tian.zip -d de
把/home目录下面的abc文件夹和123.txt压缩成为abc123.zip
zip -r abc123.zip abc 123.txt
把/home目录下面的abc12.zip、abc23.zip、abc34.zip同时解压到/home目录里面
unzip abc\*.zip
unzip -l moby.zip 列出将要解压的文件
[root@localhost home]# unzip -l tian.zip
Archive: tian.zip
Length Date Time Name
--------- ---------- ----- ----
0 12-27-2019 03:13 tian/
--------- -------
0 1 file
[root@localhost home]#
unzip -t moby.zip 测试将要解压的文件是否完整
[root@localhost home]# unzip -t tian.zip
Archive: tian.zip
testing: tian/ OK
No errors detected in compressed data of tian.zip.
[root@localhost home]#
gzip 命令
gzip a.txt 原文件不保留 想让gzip保留原始文件,则需要使用-c 但还需要将输出重定向到另一个文件
[root@localhost de]# gunzip -c a.txt.gz > /home/tian/yang (不能到父级目录 tian )
[root@localhost de]# cd ../
[root@localhost home]# ls
1.zip de de.zip others1 others2 tian tian.zip xi xiang xiang.zip xi.zip yang yan.zip
[root@localhost home]# cd tian
[root@localhost tian]# ls
a.txt yang
[root@localhost tian]#
gzip 只能压缩单文件 先归档到单文件再压缩
[root@localhost home]# gzip yang
gzip: yang is a directory -- ignored
[root@localhost home]# ls
1.zip de de.zip others1 others2 tian tian.zip xi xiang xiang.zip xi.zip yang
[root@localhost home]# cd de
[root@localhost de]# ls
a.txt b.txt c.txt rng tian txt.zip
[root@localhost de]# gzip a.txt
[root@localhost de]# ls
a.txt.gz b.txt c.txt rng tian txt.zip
[root@localhost de]#
zip主要是压缩单个文件,zip是压缩多个文件,然后zip 压缩文件名 需要压缩的文件,如:将abcd四个文件压缩到一起,压缩文件名为r,命令为:zip r a b c d,
gzip是一种文件压缩工具(或该压缩工具产生的压缩文件格式),它的设计目标是处理单个的文件。gzip在压缩文件中的数据时使用的就是zlib。为了保存与文件属性有关的信息,gzip需要在压缩文件(.gz)中保存更多的头信息内容,而zlib不用考虑这一点。但gzip只适用于单个文件,所以我们在UNIX/Linux上经常看到的压缩包后缀都是.tar.gz或*.tgz,也就是先用tar把多个文件打包成单个文件,再用gzip压缩的结果。
zip只是一种数据结构,跟rar同类型。zip是适用于压缩多个文件的格式(相应的工具有PkZip和WinZip等),因此,zip文件还要进一步包含文件目录结构的信息,比gzip的头信息更多。但需要注意,zip格式可采用多种压缩算法,我们常见的zip文件大多不是用zlib的算法压缩的,其压缩数据的格式与gzip大不一样。
默认情况下,gzip不遍历压缩子目录的内容。为了让gzip可以压缩子目录,则需要在使用通配符的同时,使用-r(或--recursive)选项。这一次,每个文件(包括子目录中的文件)都会被压缩。不过要注意,每个文件都是单独压缩的。gzip命令并不能像zip命令那样将所有文件组合到一个大文件中。要想将所有文件压缩到一个大文件中,需要引入tar命令,
10.3 用 tar 和 gzip 归档和压缩文件
[root@localhost home]# tar -zcvf de.tar.zip de/
de/
de/.bash_logout
de/.bash_profile
de/.bashrc
de/b.txt
de/c.txt
de/rng/
de/rng/d.txt
de/txt.zip
de/tian/
de/a.txt.gz
de/de.tar
[root@localhost home]# ls
1.zip de de.tar.zip others1 others2 tian tian.zip xi xiang xiang.zip xi.zip yang yan.zip
inux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩。
1.命令格式:
tar[必要参数][选择参数][文件]
2.命令功能:
用来压缩和解压文件。tar本身不具有压缩功能。他是调用压缩功能实现的
3.命令参数:
必要参数有如下:
-A 新增压缩文件到已存在的压缩
-B 设置区块大小
-c 建立新的压缩文件
-d 记录文件的差别
-r 添加文件到已经压缩的文件
-u 添加改变了和现有的文件到已经存在的压缩文件
-x 从压缩的文件中提取文件
-t 显示压缩文件的内容
-z 支持gzip解压文件
-j 支持bzip2解压文件
-Z 支持compress解压文件
-v 显示操作过程
-l 文件系统边界设置
-k 保留原有文件不覆盖
-m 保留文件不被覆盖
-W 确认压缩文件的正确性
可选参数如下:
-b 设置区块数目
-C 切换到指定目录
-f 指定压缩文件
--help 显示帮助信息
--version 显示版本信息
这样就可以知道每个文件的权限、所有者、大小以及创建时间等信息
测试将要解开和解压的 tarball -zvtf 要确保-f是最后一个选项,因为在它后面需要指定.tar.gz文件
[root@localhost home]# tar -zvtf de.tar.zip
drwx--x--- de/de 0 2019-12-28 22:33 de/
-rw-r-xr-- de/de 18 2019-08-08 20:06 de/.bash_logout
-rw-r-xr-- de/de 193 2019-08-08 20:06 de/.bash_profile
-rw-r-xr-- de/de 231 2019-08-08 20:06 de/.bashrc
-rw-r-xr-- root/root 0 2019-12-25 19:58 de/b.txt
-rw-r-xr-- root/root 0 2019-12-25 19:58 de/c.txt
drwxr-xr-x root/root 0 2019-12-25 21:01 de/rng/
-rw-r-xr-- root/root 0 2019-12-25 21:01 de/rng/d.txt
-rw-r--r-- root/root 160 2019-12-27 22:58 de/txt.zip
drwx--x--- root/root 0 2019-12-27 03:13 de/tian/
-rw-r-xr-- root/root 26 2019-12-25 19:58 de/a.txt.gz
-rw-r--r-- root/root 10240 2019-12-28 22:33 de/de.tar
[root@localhost home]# 这样就可以知道每个文件的权限、所有者、大小以及创建时间等信息
解开和解压 tarball -zxvf
[root@localhost home]# tar -zxvf de.tar.zip -C /home/others1 到指定目录
de/
de/.bash_logout
de/.bash_profile
de/.bashrc
de/b.txt
de/c.txt
de/rng/
de/rng/d.txt
de/txt.zip
de/tian/
de/a.txt.gz
de/de.tar
[root@localhost home]# cd others1
[root@localhost others1]# ls
de
[root@localhost others1]# cd de
[root@localhost de]# ls
a.txt.gz b.txt c.txt de.tar rng tian txt.zip