目录
文件内容统计
wc命令
复制移动文件
复制文件或目录cp命令
移动文件或目录mv命令
查找文件路径
拓展:Linux权限数字表示法
解释权限
如何用数字表示权限
whereis命令
which命令
locate命令
find命令
find动作
压缩和解压缩
zip命令和unzip命令
zip命令(压缩命令)
unzip命令(解压缩命令)
gzip和gunzip命令
gunzip命令(解压缩命令)
gzip命令(压缩命令)
bzip2命令和bunzip2命令
xz命令和unxz命令
归档命令tar
打包压缩目录
释放压缩目录
查看压缩文件
wc命令用于统计文本文件的行数、字数或字节数。
1、显示行数
语法格式
wc -l 文件名
例子
这个命令可以显示b文件的行数
[root@Test test]# cat -n b
1 asdf
2 adf
3 asdf
4 asdf
5 asdf
6 sadfsadg
7 asdf
8
[root@Test test]# wc -l b
8 b
2、只显示单词数
语法格式
wc -w 文件名
例子
这个命令可以查看文件b中有几个单词根据结果来看是计算连着的字符串的数目
[root@Test test]# cat b
asdf
adf
asdf
asdf
asdf
sadfsadg
asdf[root@Test test]# wc -w b
7 b
3、只显示字节数
语法格式
wc -c 文件名
例子
这个命令可以显示b文件的字节数,所显示的字节数应当是每一行都会额外算一个字节
[root@Test test]# cat b
asdf
adf
asdf
asdf
asdf
sadfsadg
asdf[root@Test test]# wc -c b
39 b
4、行数、单词数、字节数一起显示
语法格式
wc 文件名
例子
查看文件b的行数、单词数、字节数
[root@Test test]# wc b
8 7 39 b
5、统计系统有多少用户
在/etc/路径下的passwd文件中存储的是用户的信息,每一行代表一个用户,查询它的行数就可以知道用户的数量了
[root@Test test]# wc -l /etc/passwd
37 /etc/passwd
拓展:有关文件/etc/passwd的详细信息可以从下面链接了解
linux配置文件之/etc/passwd详解 - 知乎 (zhihu.com)
1、保留拦截、文件属性、递归拷贝目录(相当于dpr的组合)
语法格式
cp -a 源文件 目标文件
例子
将/test文件中的a文件复制到/test/test1文件去复制文件的名称为a3
# 首先查看a文件
[root@Test test]# cat a
2 asdf
4 adf
1 asdf
3 asdf
5 asdf
6 sadfsadg
8 asdf
3# 进入 /test/test1中
[root@Test test]# cd test1/
查看test1文件夹下的文件
[root@Test test1]# ls
a2# 进行复制拷贝
[root@Test test1]# cp -a ../a a3# 查看是否复制成功
[root@Test test1]# ls
a2 a3
[root@Test test1]# cat a3
2 asdf
4 adf
1 asdf
3 asdf
5 asdf
6 sadfsadg
8 asdf
3
2、拷贝时保留连接
语法格式
cp -d 源文件 目标文件
3、 除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中
语法格式
cp -p 源文件 目标文件
4、若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名
语法格式
cp -d 源文件 目标文件
用于剪切或重命名文件
语法格式
mv 选项 源文件 目标文件
例子
将test文件夹下的a文件剪贴到test/test1/中并且重命名为liu(如果在原文件下进行操作相当于对文件重命名)
[root@Test test]# cat a
2 asdf
4 adf
1 asdf
3 asdf
5 asdf
6 sadfsadg
8 asdf
3
[root@Test test]# mv a test1/liu
[root@Test test]# cat test1/liu
2 asdf
4 adf
1 asdf
3 asdf
5 asdf
6 sadfsadg
8 asdf
3
[root@Test test]# ls
b c t test1
Linux有三种访问权限 r可读 w可写 x可执行
下面根据给出来的例子来看看如何去看这个权限
[root@Test test]# ll
total 16
-rw-r--r--. 1 root root 39 Jul 28 11:33 b
看上面背景被标红的部分共有9格,将这9格分成三部分,每三格一部分,每部分的每个位置上的东西都是不变的都是rwx,也就是从这9格里面看只有第1 4 7格会出现r 2 5 8会出现w 3 6 9会出现x。三部分每部分的意义指的是
第一部分指的是自己的权限
第二部分指的是同组人的权限
第三部分指的是其他人的权限
看上面的例子就可以知道上面的那个文件自己是可读可写不可执行的
同组人只可读
其他人也是只可读
rwx用二进制来看那个权限出现那个权限就表示为1
那么没种权限对应的数字就可以写成如下形式
权限 | 权限表示 | 十进制表示 | 二进制表示 |
啥都不可以干 | --- | 0 | 000 |
只可执行 | --x | 1 | 001 |
只可写 | - w - | 2 | 010 |
可写可执行 | -wx | 3 | 011 |
可读 | r-- | 4 | 100 |
可读可执行 | r-x | 5 | 101 |
可读可写 | rw- | 6 | 110 |
可读可写可执行 | rwx | 7 | 111 |
然后上面的例子权限就可以表示成644
[root@Test test]# whereis cat
cat: /usr/bin/cat /usr/share/man/man1/cat.1.gz /usr/share/man/man1p/cat.1p.gz
find命令后的参数都可以去去掉路径默认当前所在路径查找去掉、不指定条件默认所有对象都符合条件单独使用find命令默认查找当前目录下的所有路径及其子路径的所有文件包括隐藏目录
语法格式
find 路径 选项 搜索内容
1、根据名称查找文件
语法格式
find 搜索路径 -name 搜索内容
例子
查找在/tmp中名字为liu的文件
[root@Test test]# find /tmp/ -name liu
/tmp/test/liu
2、根据文件大小搜索
语法格式
find 搜索路径 -size 大小范围
(-意思是找比指定范围还小的文件 +找比指定范围还大的文件)
例子
寻找/tmp文件下小于10k的文件
[root@Test test]# find /tmp -size -10k
/tmp
/tmp/.X11-unix
/tmp/.X11-unix/X1024
/tmp/.X11-unix/X1025
/tmp/.X11-unix/X0
/tmp/.X11-unix/X1
/tmp/.ICE-unix
只展示部分
3、根据时间查找
stat命令可以查看文件的四个时间:atime mtime ctime 四个时间依次是文件访问时间 文件数据修改时间 文件状态修改时间
格式
find 路径 选项 +n/-n (代表天数)
例子
寻找访问时间小于一天的的文件
[root@Test test]# find /tmp/ -atime -1
/tmp/
/tmp/.X11-unix
/tmp/.X11-unix/X1024
/tmp/.X11-unix/X1025
/tmp/.X11-unix/X0
/tmp/.X11-unix/X1
/tmp/.ICE-unix
只显示部分
4、根据权限查找
格式
find 搜索路径 -perm 权限模式
例子
查找/tmp路径下 权限等于777的文件
[root@Test test]# find /tmp -perm 777
/tmp/.ICE-unix/1442
/tmp/.ICE-unix/2154
/tmp/test/test1/a2
5、按照所有者和所有组查询
格式
按用户id查询
find 搜索路径 -uid 用户id
按组d查询
find 搜索路径 -gid 组d
按用户名查询
find 搜索路径 -user 用户名
按组名查询
find 搜索路径 -group 组名
例子
在/tmp下查询用户名为root的文件
[root@Test test]# find /tmp -user root
/tmp
/tmp/.X11-unix
/tmp/.ICE-unix
/tmp/.XIM-unix
/tmp/.font-unix只显示部分
6、按文件类型搜索
格式
find 搜索路径 -type 搜索类型
例子
查找在/tmp路径下的软连接文件
[root@Test test]# find /tmp/ -type l
/tmp/test/test1/a2
7、逻辑运算符
find / -uid 0 -a -size +1k
动作可以写在命令后面
例子
从文件/tmp中搜索名字为liu的文件并且删除它
[root@Test test]# ls
b c liu t test1
[root@Test test]# find /tmp/ -name liu -delete
[root@Test test]# ls
b c t test1
1、压缩文件
格式
zip 压缩文件 源文件
例子
将test文件夹中的b文件压缩到test1文件夹中且压缩后名字为b1.zip
[root@Test test]# ls
b c t test1
[root@Test test]# zip test1/b1.zip b
adding: b (deflated 49%)
[root@Test test]# ls test1/
a2 a3 b1.zip
2、 最高压缩率压缩
格式
zip -9 压缩文件 源文件
例子
将test文件夹中的b文件以最高压缩率压缩到test1文件夹中且压缩后名字为b2.zip
[root@Test test]# ls
b c t test1 test2
[root@Test test]# zip -9 test1/b2.zip b
adding: b (deflated 49%)
[root@Test test]# ls test1
a2 a3 b1.zip b2.zip
3、压缩目录及目录下文件和子目录
格式
zip -r 压缩文件 源文件
例子
将文件夹test下的test1文件夹压缩至test2这个文件夹中并且命名为test11.zip
[root@Test test]# ls
b c t test1 test2
[root@Test test]# zip -r test2/test11.zip test1
zip warning: name not matched: test1/a2
adding: test1/ (stored 0%)
adding: test1/a3 (deflated 56%)
adding: test1/b1.zip (stored 0%)
adding: test1/b2.zip (stored 0%)
[root@Test test]# ls test2
test11.zip
4、在压缩文件中添加新的文件
格式
zip -m 压缩文件 新的文件
例子
在压缩文件b1.zip中添加文件t ,将t文件添加入文件夹b1.zip中后在原文件中t文件会消失
[root@Test test]# zip -m test1/b1.zip t
adding: t (deflated 69%)# 查看b1.zip下的文件
[root@Test test]# unzip -v test1/b1.zip
Archive: test1/b1.zip
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
39 Defl:N 20 49% 07-28-2023 11:33 42eb94e6 b
39 Defl:N 12 69% 07-27-2023 21:53 ac2dfb6e t
-------- ------- --- -------
78 32 59% 2 files# 查看test文件 t文件消失
[root@Test test]# ls
b c test1 test2
5、在压缩文件中删除指定文件
格式
zip -d 压缩文件 要删除文件
例子
将压缩文件b1.zip中的t文件删除
[root@Test test]# zip -d test1/b1.zip t
deleting: t# 查看b1.zip文件中的文件
[root@Test test]# unzip -v test1/b1.zip
Archive: test1/b1.zip
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
39 Defl:N 20 49% 07-28-2023 11:33 42eb94e6 b
-------- ------- --- -------
39 20 49% 1 file
6、在压缩某个文件夹时排除指定文件
格式
zip -r 压缩文件 要删除文件 -x 要排除的文件
例子
在将文件test1压缩至test2并且压缩后的文件名为test12.zip 且排除test1 中的a2文件
[root@Test test1]# ls
a2 a3 b1.zip b2.zip[root@Test test]# zip -r test2/test12.zip test1 -x test1/a2
zip warning: name not matched: test1/a2
adding: test1/ (stored 0%)
adding: test1/a3 (deflated 56%)
adding: test1/b2.zip (stored 0%)
adding: test1/b1.zip (stored 0%)
[root@Test test]# unzip -v test2/test12.zip
Archive: test2/test12.zip
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
0 Stored 0 0% 07-29-2023 21:27 00000000 test1/
95 Defl:N 42 56% 07-27-2023 21:22 f9cab6ac test1/a3
172 Stored 172 0% 07-29-2023 21:13 2452ac99 test1/b2.zip
172 Stored 172 0% 07-29-2023 21:27 6daddda9 test1/b1.zip
-------- ------- --- -------
439 386 12% 4 files
1、 查看压缩文件目录不解压
格式
unzip -v 压缩文件
例子
查看test1文件夹下的b1.zip压缩文件
[root@Test test1]# ls
a2 a3 b1.zip b2.zip[root@Test test]# unzip -v test1/b1.zip
Archive: test1/b1.zip
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
39 Defl:N 20 49% 07-28-2023 11:33 42eb94e6 b
-------- ------- --- -------
39 20 49% 1 file
2、解压缩文件
格式
unzip 压缩文件 -d 解压缩后文件所在路径
例子
将test1中的b1.zip中的文件解压至test2中去
[root@Test test1]# ls
a2 a3 b1.zip b2.zip[root@Test test]# unzip test1/b1.zip -d test2
Archive: test1/b1.zip
inflating: test2/b
[root@Test test]# ls test2
b test11.zip test12.zip
将将test1中的b2.zip中的文件解压至test2/1中去(若解压路径不存在会创建一个路径)
[root@Test test1]# ls
a2 a3 b1.zip b2.zip[root@Test test]# ls test2
b test11.zip test12.zip[root@Test test]# unzip test1/b2.zip -d test2/1
Archive: test1/b2.zip
inflating: test2/1/b
[root@Test test]# ls test2
1 b test11.zip test12.zip
gunzip == gzip -d
1、压缩文件不保留原文件
格式
gzip 要压缩的文件
例子
将test文件夹中的b文件压缩原文件消失
[root@Test test]# ls
b c test1 test2
[root@Test test]# gzip b
[root@Test test]# ls
b.gz c test1 test2
2、压缩文件保留原文件
>
号将输出到标准输出的数据重定向到 >
之后的文件中, 重命名压缩文件可以用这种方法
格式
gzip -c 要压缩文件 > 被压缩到哪里及压缩后文件的名字
例子
将文件夹test下的c文件压缩至test1文件夹下并且命名为123.gz 且原文件c保留了下来
注:压缩时压缩名要加后缀.gz
[root@Test test]# gzip -c c > test1/123.gz
[root@Test test]# ls
b.gz c test1 test2
[root@Test test]# cd test1
[root@Test test1]# ls
123.gz a2 a3 b1.zip b2.zip
3、压缩目录
格式
gzip -cr 要压缩文件 > 被压缩到哪里及压缩后文件的名字
例子
将文件夹test下的test1文件夹压缩至test2文件夹下并且命名为124.gz 且原文件test1保留了下来
[root@Test test]# gzip -cr test1 > test2/124.gz
[root@Test test]# ls test2
1 124.gz b test11.zip test12.zip[root@Test test]# ls
b.gz c test1 test2
4、解压缩
格式
gzip -dc 要压缩文件 > 被压缩到哪里及压缩后文件的名字
例子
将test1文件夹下的123.gz解压缩到上一级文件夹下也就是test文件夹并且重命名为1.txt且原文件会保留
[root@Test test1]# gzip -dc 123.gz > ../1.txt
[root@Test test1]# cd ..
[root@Test test]# ls
1.txt b.gz c test1 test2[root@Test test1]# ls
123.gz a3 b1.zip b2.zip
5、查询压缩文件不解压缩
就是查看命令的前面加个z
例子
[root@Test test1]# zcat 123.gz
adf
cd
gf
bf
D
A
dfs
jh
try
aadf
AASDF
bzip命令于gzip命令基本相同,但是压缩率更高,压缩后缀为bz2
由于与gzip命令基本相同就简单的来·几个例子
注:查看压缩文件的命令时查看命令前加bz
例子
将test文件夹下的1.txt压缩至test1下且压缩名为1123.bz2
[root@Test test]# bzip2 -c 1.txt > test1/1123.bz2
[root@Test test]# ls test1
1123.bz2 123.gz a3 b1.zip b2.zip
例子
将刚刚压缩的文件解压缩至test文件夹下
[root@Test test1]# bzip2 -dc 1123.bz2 > ../2.txt
[root@Test test1]# cd ..
[root@Test test]# ls
1.txt 2.txt b.gz c test1 test2
总体来说,xz
的使用方法和gzip
、bzip2
大体相同,xz
的压缩率更高,因此压缩同样一个文件,使用xz
最费时但压缩后文件最小
压缩文件后缀为xz
注:查看压缩文件的命令时查看命令前加xz
同样来个例子
将test文件夹下的1.txt压缩至test1下且压缩名为2123.xz
[root@Test test]# xz -c 1.txt > test1/2123.xz
[root@Test test]# ls test1
1123.bz2 123.gz 2123.xz a3 b1.zip b2.zip
tar命令作用是将多个文件打包成一个文件然后进行压缩,tar命令支持使用gzip
、bzip2
、xz
命令对打包后的文件进行压缩,因此常见的后缀为.tar.gz
、.tar.bz2
、.tar.xz
选项 | 功能 |
-c |
创建.tar格式的包文件 |
-x |
释放.tar格式的包文件 |
-t |
查看包中的文件列表 |
-f(必选项)
|
用于指定打包文件名。
当与 -c 选项一起使用时,创建的 tar 包文件使用该选项指定的文件名
当与 -x 选项一起使用时 , 则释放该选项指定的 tar 包文件
|
-v
|
表示在命令执行时显示详细的提示信息
|
-p
|
打包时保留文件及目录的权限
|
-z
|
调用 gzip 程序,以 gzip 格式压缩或解压缩文件( .tar.gz )
|
-j
|
调用 bzip2 程序,以 bzip2 格式压缩或解压缩文件( .tar.bz2 )
|
-J
|
使用 xz 压缩或解压缩文件( .tar.xz ), xz 的压缩率通常比 bzip2 更高
|
-C (大写字母 C )
|
和 -x 选项一起使用,表示释放包时指定释放的目标路径
|
格式
tar 选项 文件
格式
tar -cf 压缩后文件路径及文件名 要压缩的文件
将test文件下的1.txt 2.txt 3.txt压缩至test2中且压缩名为1-3.tar.gz
[root@Test test]# ls
1.txt 2.txt 3.txt b.gz c test1 test2[root@Test test]# tar -czf test2/1-3.tar.gz 1.txt 2.txt 3.txt
[root@Test test]# ls test2
1 124.gz 1-3.tar.gz b test11.zip test12.zip
格式
tar -xf 要解压缩的压缩包 -C 解压缩的路径
例子
将刚刚打包的1-3.tar.gz文件解压缩至test1中
[root@Test test]# tar -xzf test2/1-3.tar.gz -C test1/
[root@Test test]# ls test1
1123.bz2 123.gz 1.txt 2123.xz 2.txt 3.txt a3 b1.zip b2.zip
格式
tar -tv 压缩包名
例子
查看刚刚打包的文件
[root@Test test]# tar -tvf test2/1-3.tar.gz
-rw-r--r-- root/root 46 2023-07-29 22:28 1.txt
-rw-r--r-- root/root 46 2023-07-29 22:41 2.txt
-rw-r--r-- root/root 46 2023-07-29 23:14 3.txt