文件的其他操作命令

本文详细介绍了Linux系统中的文本内容统计(wc)、文件复制与移动(cp,mv)、查找文件(whereis,which,find)、以及常用的压缩与解压缩工具(zip,gzip,bzip2,xz)和tar归档命令的使用方法。
摘要由CSDN通过智能技术生成

目录

1. 文本内容统计wc

1.4. 示例

2. 复制、移动文件

2.1. 复制文件或目录

2.2. 移动文件或目录

3. 查找文件

3.1. 查找文件路径

3.1.1. whereis命令

3.1.2. which命令

3.2. 查找文件-find

3.2.5. 示例

1. 按照文件名搜索

2. 按照文件大小搜索

3. 按照修改时间搜索

4. 按照权限搜索

5. 按照所有者和所属组搜索

6. 按照文件类型搜索

7.逻辑运算符

8. -exec参数

4. 压缩和解压缩

4.1. zip和unzip命令

例:

4.2. gzip命令

4.3. bzip2命令        

4.4. xz、unxz命令        

5. tar归档命令

5.1. 格式

5.2. 参数

5.3. 格式

5.4. 示例


1. 文本内容统计wc

1.1. 作用

                wc命令用于统计指定文本文件的行数、字数或字节数

1.2. 格式

                wc         -参数         文件名

1.3. 参数

1.4. 示例

统计所有

  38           89         2136         /etc/passwd
行数·      单词数   字节数              

配合管道符计算

显示文件数

2. 复制、移动文件

2.1. 复制文件或目录

2.1.1. 格式      

                  cp         -参数         源文件         目标文件

2.1.2. 参数

2.2. 移动文件或目录

2.2.1. 作用

        mv命令用于剪切或重命名文件

2.2.2. 格式

                mv         [选项]         源文件名称 目标文件名称

2.2.3. 注意

        1.剪切操作不同于复制操作,因为它会把源文件删除掉,只保留剪切后的文件。

         2.如果在同一个目录中将某个文件剪切后还粘贴到当前目录下,其实本质就是对文件进行了重命名操作。

证明注意一: 

[root@server q1]# ls
f1.txt  m1  r2  r3  t1
[root@server q1]# mv t1  /root/q1/m1/
[root@server q1]# ls
f1.txt  m1  r2  r3
[root@server q1]# 

证明注意二:  

[root@server q1]# cd m1
[root@server m1]# ls
t1
[root@server m1]# mv t1 t5
[root@server m1]# ls
t5
[root@server m1]# 

3. 查找文件

3.1. 查找文件路径

3.1.1. whereis命令

作用:可以搜索系统命令的可执行文件路径说明文档

格式:whereis         命令名

例: 

3.1.2. which命令

作用:搜索系统命令的可执行文件

格式:        which         命令名

例:

3.2. find—查找文件

3.2.1. 作用

        按照文件名大小时间权限类型所属者所属组  来搜索文件

3.2.2. 格式

        find         查找路径         查找条件        具体条件         操作

3.2.3. 注意

         1.find命令默认的操作是print输出         

         2.find是检索文件的,grep是过滤文件中字符串

3.2.4. 参数

3.2.5. 示例

1. 按照文件名搜索

         -name:按照文件名搜索

         -iname:按照文件名搜索,不区分文件名大小写

        -inum:按照 inode 号搜索

        没有那个文件或目录:find命令在执行时,在内存中自己产生的临时文件,执行完既消失

        注意:搜索位置越大,消耗系统资源越多,在生产服务器上搜索的时候,尽量不在根目录下搜索,把 搜索的范围尽量控制在最小

# /目录下检索名为passwd的文件

        [root@server q1]# find / -name "passwd" -print

# /etc下检索host开头的文件     

         [root@server ~]# find /etc -name "host*" -print

#在/目录查找以a开头文件

        [root@server ~]# find / -name "a*"

# 在/目录中查找以b开头的不区分大小写的文件

        [root@server ~]# find / -iname "b*"

# 在/etc目录下检索以b开头共4个字符的文件

        [root@server ~]# find /etc -name "b???"

# 在/etc目录下检索第二个字母为c的文件

        [root@server ~]# find /etc -name "?c*"

# /目录下检索扩展名为.cfg的文件

        [root@server ~]# find / -name "*.cfg"

# /目录下检索扩展名为.txt的文件并统计个数

        [root@server ~]# find / -name "*.txt" | wc -l

2. 按照文件大小搜索

         -size [+|-]大小: 按照指定大小搜索文件,“+”的意思是搜索比指定大小还要大的文件, “-”的意思是 搜索比指定大小还要小的文件

        单位:可以通过man find 查看size参数的单位

# 默认单位,如果单位为b或不写单位,则按照512 Byte搜索。

        ' b':for 512-byte blocks(this is the default if no suffix is used)

#搜索单位是c,按照字节搜索。

        'c':for bytes
#搜索单位是w,按照双字节(中文)搜索。

        'w':for two-byte words

#按照KB单位搜索,必须是小写的k。

        'k':for Kilobytes(units of 1024 bytes)

#按照MB单位搜索,必须是大写的M

        'M':for Megabytes(units of 1048576 bytes)

#按照GB单位搜索,必须是大写的G

        ' G':for Gigabytes(units of 1073741824 bytes)

[root@server ~]# find / -size -1k |wc -l

[root@server ~]# find / -size +100M |wc -l

[root@server ~]# find . -empty  | wc -l  # 空文件  |  个数

3. 按照修改时间搜索

        -atime [+|-]时间: 按照文件访问时间搜索

        -mtime [+|-]时间: 按照文件数据修改时间搜索

        -ctime [+|-]时间: 按照文件状态修改        时间搜索

        -newer file: 把比file修改时间更新的文件列出来

        注意:时间范围问题

                -5:代表 5 天内修改的文件。

                 5:代表前 5~6 天那一天修改的文件。

                 +5:代表 6 天前修改的文件。

[root@master ~]# find / -mtime -10 -empty 10天以内的空文件

4. 按照权限搜索

        -perm 权限模式: 查找文件权限刚好等于“权限模式”的文件 ,常用

        -perm -权限模式: 查找文件权限全部包含“权限模式”的文件

        -perm +权限模式: 查找文件权限包含“权限模式”的任意一个权限的文件

         如果要在整个系统中搜索权限中包括SUID权限的所有文件,只需使用-4000即可:

[root@server ~]# find . perm 755 

[root@server ~]# find / -perm -4000

5. 按照所有者和所属组搜索

        -uid 用户 ID: 按照用户 ID 查找所有者是指定 ID 的文件

        -gid 组 ID: 按照用户组 ID 查找所属组是指定 ID 的文件

        -user 用户名: 按照用户名查找所有者是指定用户的文件

        -group 组名: 按照组名查找所属组是指定用户组的文件

        -nouser: 查找没有所有者的文件 ,常用,主要用于查找垃圾文件,还有一种情况就是外来文件,比如 光盘和U盘中的文件如果是由Windows复制来的(也就是文件是由windows建立的),在Linux中查 看就是没有所有者的文件;再比如手工源码包安装的文件,也有可能没有所有者(由其他系统打的源 码包)

[root@server ~]# find . -user root

[root@server ~]# find / -nouser # 查看无所有者的文件

6. 按照文件类型搜索

        -type d: 查找目录

        -type f: 查找普通文件

        -type l: 查找软链接文件

例:

[root@server ~]# find /dev -type b

[root@server ~]# find ~ -type d

[root@server ~]# find /dev -type c -size -10k 

7.逻辑运算符

                -a: and 逻辑与

                -o: or 逻辑或

                -not: not 逻辑非

        优先级:与>或>非

[root@server ~]# find / -size +10k -a -size -50k  | wc -l 

[root@server ~]# find /etc -name "e*" -o -name "f*"  | wc -l 

[root@server ~]# find /etc -name "d*" -user root  | wc -l     # 默认为and

8. -exec参数

        作用:

                用于把find命令搜索到的结果交由紧随其后的命令作进一步处理,类似于管道符,该参数必须 为带减号的长参数。

         使用-exec命令结尾必须为\;

# 将/root 目录下的属于root账户的文件检索出来后拷贝到/目录下的find1目录中

         [root@server ~]# find ~ -user root -exec cp -a {} /find1/ \;

4. 压缩和解压缩

4.1. zip和unzip命令

4.1.1. 格式:

                 zip FILE # 压缩

                 unzip FILE # 解压缩

例:

例1: 使用zip压缩文件test1.txt

        [root@server test]# zip test1.zip test1.txt

# 压缩率为最高压缩test2.txt,-1 : 最快压缩,压缩率最差,-9 : 最大压缩,压缩率最佳         [root@server test]# zip -9 test2.zip test2.txt #

例2: 将当前目录dir1连同目录下文件一起压缩

        [root@server test]# zip -r dir1.zip dir1

# 例3: 向压缩文件中test1.zip中添加test2. txt文件

        [root@server test]# zip -m test1.zip test2.txt

# 例4: 删除压缩文件中的文件

        [root@server test]# zip -d test1.zip test2.txt

# 例5: 压缩文件时排除某个文件

        [root@server test]# zip test.zip *.txt -x test1.txt

# 例6: 解压文件test2.zip

        [root@server test]# unzip test2.zip

# 例7:将压缩文件text.zip在指定目录dir1下解压缩

        [root@server test]# unzip test.zip -d dir1

# 例8: 查看压缩文件目录,但不解压

         [root@server test]# unzip -v test.zip

4.2. gzip命令

# 例1: 使用gzip压缩文件

        [root@server test]# gzip test1.txt

# 例2: 使用gzip压缩目录下文件

        [root@server test]# gzip -r dir1

        [root@server test]# ls dir1

#注意: 以上压缩之后原始文件就没有了。

# 例3: 压缩但保留原始文件

        [root@server test]# gzip -c test2.txt > test2.txt.gz

4.3. bzip2命令        

# bzip2是更新的Linux压缩工具,比gzip有着更高的压缩率。

        [root@server test]# bzip2 test3.txt

# 源文档不保留

        [root@server test]# bzip2 -9 -c test3.txt > test3.txt.bz2

# 用最佳的压缩比压缩,并保留 原本的档案

4.4. xz、unxz命令        

# 例1:压缩文件

         [root@server test]# xz test5.txt

  # 例2:压缩dir1目录下文件

         [root@server test]# xz dir1/*

         [root@server test]# ls dir1

# 例3:查看压缩文件内容

        [root@server test]# xzcat test5.txt.xz test1

# 例4:解压缩(xz -d等价于unxz)

         [root@server test]# unxz test5.txt.xz

5. tar归档命令

5.1. 格式

                tar         -参数         [args]……

5.2. 参数

5.2.1. 常用参数

5.2.2. 必选参数

5.2.3. 辅助参数

5.2.4. 额外参数

        # 打包时排除某个文件 tar cf 文件名.

        tar --exclude=路径/文件 路径

         注:此处的路径前后需要保持保持一致,统一使用绝对路径或者相对路径

5.3. 格式

5.3.1. 打包

        作用:

                创建(非压缩的)打包文件,将指定的一个或多个文件或目录备份生成为一个指定的包文件

                tar         cvf/cfv/-cvf         文件名.tar      要打包的目录或文件名

列出包文件中的文件列表

                tar          t[v]f         包文件名 `

5.3.2. 打包压缩

         作用:

                为节省存储空间,通常需要生成压缩格式的tar包文件,tar命令支持三种不同的压缩方式

tar         czf/-czf         文件名.tar.gz         要打包压缩的目录或文件名……

tar         cjf/-cjf         文件名.tar.bz2         要打包压缩的目录或文件名……

tar         cJf/-cJf         文件名.tar.xz         要打包压缩的目录或文件名……

提取包文件到指定目录

tar xf/-xf/-xzf 文件名.tar.gz [-C 目标路径]

tar xf/-xf/-xjf 文件名.tar.bz2 [-C 目标路径]

tar xf/-xf/-xJf 文件名.tar.xz [-C 目标路径]

5.4. 示例

        将/etc下所有内容打包压缩到/root目录中

                [root@server ~]# tar -cvf taretc.tar.gz /etc

解压缩

        [root@server ~]# mkdir temp

        [root@server ~]# mv taretc.tar.gz temp

        [root@server ~]# cd temp

        [root@server temp]#

         [root@server temp]# tar -xvf taretc.tar.gz

注意:参数中-c 与 -x 不能同时使用

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

爱玩网络的小石

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值