首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >2024全网最为详细的红帽系列【RHCSA-(7)】初级及进阶Linux保姆级别骚操作教程;学不费来砍我[就怕你日后学成黑客了]

2024全网最为详细的红帽系列【RHCSA-(7)】初级及进阶Linux保姆级别骚操作教程;学不费来砍我[就怕你日后学成黑客了]

作者头像
盛透侧视攻城狮
发布2024-10-22 10:41:01
发布2024-10-22 10:41:01
18400
代码可运行
举报
运行总次数:0
代码可运行

文件的其他操作命令

1.文本内容统计wc

简介:

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

语法格式:

代码语言:javascript
代码运行次数:0
运行
复制
wc [选项] 文件名称

选项

作用

-l

只显示行数

-w

只显示单词数

-c

只显示字节数

在Linux系统中,/etc/passwd是用于保存系统账户信息的文件,要统计当前系统中有多少个用户

统计当前系统中有多少个用户

代码语言:javascript
代码运行次数:0
运行
复制
[root@kongd ~]# wc -l /etc/passwd

45 /etc/passwd

2 复制、移动文件

2.1复制文件或目录

语法格式:
代码语言:javascript
代码运行次数:0
运行
复制
cp [选项] 源文件 目标文件

选 项

功能

-a

通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录

-d

拷贝时保留链接

-f

在覆盖已经存在的目标文件时不提示

-i

在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝

-p

除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中

-r

若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。 此时目标 文件必须为一个目录名

2.2移动文件或目录

简介:
  • mv命令用于剪切或重命名文件
  • 剪切操作不同于复制操作,因为它会把源文件删除掉,只保留剪切后的文件。
  • 如果在同一个目录中将某个文件剪切后还粘贴到当前目录下,其实本质就是对文件进行了重命名操作。
语法格式:
代码语言:javascript
代码运行次数:0
运行
复制
mv [选项] 源文件名称 目标文件名称
举例:
代码语言:javascript
代码运行次数:0
运行
复制
[root@kongd ~]# mv x.log linux.log

[root@kongd ~]# ls

install.log linux.log

3 .查找文件的路径

命令

说明

示例

whereis

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

# whereis ls

which

which 是搜索系统命令的可执行文件

#which ls

locate

按照数据库搜索,搜索速度快,消耗资源小。数据库位置/var/lib/mlocate/mlocate.db, 可以使用 updatedb 命令强制更新数据库。

#locate ls

find

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

find [path...] [expression]

  • 可以搜索系统命令的可执行文件路径和说明文档

# whereis ls which

  • which 是搜索系统命令的可执行文件

#which ls locate

  • 按照数据库搜索,搜索速度快,消耗资源小。
  • 数据库位置/var/lib/mlocate/mlocate.db, 可以使用 updatedb 命令强制更新数据库。

#locate ls find

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

find [path...] [expression]

find查询详解

简介:

  • find命令默认接的命令是-print,它默认以\n将找到的文件分隔
  • 可以使用-print0来使用\0分隔,这样就不会分行了。但是一定要注意,-print0针对的是\n转\0
  • 如果查找的文件名本身就含有空格,则find后-print0仍然会显示空格

参数

作用

-name

根据文件basename匹配名称

-path

-path可以对文件的dirname+basename进行查找。

-size

匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文 件)

-mtime [+|-]n

匹配修改内容的时间(-4指小于等于4天内的文件名;+4,大于等于5天前的文件 名;4指前4~5那一天的文件)

-atime [+|-]n

匹配访问文件的时间

-ctime [+|-]n

匹配修改文件权限的时间

参数

作用

-newer f1 !f2

匹配比文件f1新但比f2旧的文件

-perm

匹配权限(mode为完全匹配,-mode为包含即可)

-user

匹配所有者

-group

匹配所有组

-nouser

匹配无所有者的文件

-nogroup

匹配无所属组的文件

参数

作用

-type b/d/c/p/l/f

匹配文件类型(后面的字母参数依次表示块设备、目录、字符设备、管道、链接 文件、文本文件)

-prune

忽略某个目录下的文件,需要和-path一起使用

-depth

先从该目录子目录下查找,再查找该目录

-maxdepth levels -mindepth levels

最多查找多少层目录;最少查找多少层目录

-delete

将找到的文件删除,如果是目录只能删除找到的空目录。

-exec …… {}\;

后面可跟用于进一步处理搜索结果的命令

示例:

1.按照文件名搜索
代码语言:javascript
代码运行次数:0
运行
复制
[root@localhost ~]# find 路径 [选项] 搜索内容

选项:
    -name: 按照文件名搜索
    -iname: 按照文件名搜索,不区分文件名大小写
    -inum: 按照 inode 号搜索
代码语言:javascript
代码运行次数:0
运行
复制
[root@kongd ~]# find /etc -name "host*" -print

/etc/host.conf
/etc/hosts
/etc/hosts.allow
/etc/hosts.deny
/etc/avahi/hosts
/etc/hostname
代码语言:javascript
代码运行次数:0
运行
复制
[root@shell ~]# find /etc -path "*ssh/ssh*"

/etc/ssh/ssh_config
/etc/ssh/ssh_config.d
/etc/ssh/ssh_config.d/05-redhat.conf
/etc/ssh/sshd_config
/etc/ssh/ssh_host_ed25519_key
/etc/ssh/ssh_host_ed25519_key.pub
/etc/ssh/ssh_host_ecdsa_key
/etc/ssh/ssh_host_ecdsa_key.pub
/etc/ssh/ssh_host_rsa_key
/etc/ssh/ssh_host_rsa_key.pub
从结果中排除目录自身 :
代码语言:javascript
代码运行次数:0
运行
复制
[root@shell ~]# find /tmp/test ! -path /tmp/test

[root@shell ~]# find . ! -path .
代码语言:javascript
代码运行次数:0
运行
复制
[root@shell ~]# find . -name file
./file
./dir1/file
./test/file


[root@shell ~]# find ~+ -name file
/root/file
/root/dir1/file
/root/test/file


[root@shell ~]# find $PWD -name file
/root/file
/root/dir1/file
/root/test/file


[root@shell ~]# find $(pwd) -name file
/root/file
/root/dir1/file
/root/test/file
2.按照文件大小搜索
代码语言:javascript
代码运行次数:0
运行
复制
[root@localhost ~]# find 搜索路径 [选项] 搜索内容

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

-size 0可以查找大小为0的普通文件。如果要查找没有任何文件的目录或者空的普通文件可以使用empty

代码语言:javascript
代码运行次数:0
运行
复制
[root@master ~]# find . -size +10M
3.按照修改时间搜索
简介:
  • Linux 中的文件有访问时间(atime)、数据修改时间(mtime)、状态修改时间(ctime)这三个时 间,我们可以按照时间来搜索文件。
代码语言:javascript
代码运行次数:0
运行
复制
[root@localhost ~]# find 搜索路径 [选项] 搜索内容

选项:

    -atime [+|-]时间: 按照文件访问时间搜索
    -mtime [+|-]时间: 按照文件数据修改时间搜索
    -ctime [+|-]时间: 按照文件状态修改时间搜索
    -newer file: 把比file修改时间更新的文件列出来
    -newerXY:如果所考虑的文件的时间戳X比文件引用的时间戳Y新,则成功。字母X和Y可以是以下任意字
母。

 a文件引用的访问时间
 B文件引用的出生时间
 c索引节点状态更改参考时间
 m文件引用的修改时间
 t将所指定的参数理解为一个具体的时间值
代码语言:javascript
代码运行次数:0
运行
复制
-5:代表 5 天内修改的文件。

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

+5:代表 6 天前修改的文件。
4.按照权限搜索
语法格式:
代码语言:javascript
代码运行次数:0
运行
复制
[root@localhost ~]# find 搜索路径 [选项] 搜索内容

选项:
 -perm 权限模式: 查找文件权限刚好等于“权限模式”的文件
 -perm -权限模式: 查找文件权限全部包含“权限模式”的文件
 -perm +权限模式: 查找文件权限包含“权限模式”的任意一个权限的文件
如果要在整个系统中搜索权限中包括SUID权限的所有文件,只需使用-4000即可:
代码语言:javascript
代码运行次数:0
运行
复制
[root@kongd ~]# find / -perm -4000 -print

/usr/bin/fusermount
/usr/bin/chage
………………省略部分输出信息………………
5.按照所有者和所属组搜索
语法格式:
代码语言:javascript
代码运行次数:0
运行
复制
[root@localhost ~]# find 搜索路径 [选项] 搜索内容

选项:
    -uid 用户 ID: 按照用户 ID 查找所有者是指定 ID 的文件
    -gid 组 ID: 按照用户组 ID 查找所属组是指定 ID 的文件
    -user 用户名: 按照用户名查找所有者是指定用户的文件
    -group 组名: 按照组名查找所属组是指定用户组的文件
    -nouser: 查找没有所有者的文件
6.按照文件类型搜索
语法格式:
代码语言:javascript
代码运行次数:0
运行
复制
[root@localhost ~]# find 搜索路径 [选项] 搜索内容

选项:
    -type d: 查找目录
    -type f: 查找普通文件
    -type l: 查找软链接文件
7.逻辑运算符
语法格式:
代码语言:javascript
代码运行次数:0
运行
复制
[root@localhost ~]# find 搜索路径 [选项] 搜索内容

选项:
    -a: and 逻辑与
    -o: or 逻辑或
    -not: not 逻辑非
优先级:与>或>非
8.其他选项扩展

选项

说明

printf

%f是获取basename(去除所有路径前缀) %p是获取路径自身,一般用不上,%P是 获取除了find搜索路径的剩余部分

补充说明-exec参数:

  • 这个参数用于把find命令搜索到的结果交由紧随其后的命令作进一步处理
  • 它十分类似于管道符技术,并且由于find命令对参数的特殊要求
  • 因此虽然exec是长格式形式,但依然只需要一个减号(-)。
  • 注意:-exec {} \; 参数,其中的{}表示find命令搜索出的每一个文件,并且命令的结尾必须是 \;

举例: 在整个文件系统中找出所有归属于kongd用户的文件并复制到 /root/findresults 目录。 [root@shell ~]# find /root -printf "%f\n" [root@kongd ~]# find / -user kongd -exec cp -a {} /root/findresults/ \;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-10-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文件的其他操作命令
  • 1.文本内容统计wc
    • 简介:
    • 语法格式:
    • 统计当前系统中有多少个用户
  • 2 复制、移动文件
    • 2.1复制文件或目录
    • 2.2移动文件或目录
      • 语法格式:
      • 举例:
  • 3 .查找文件的路径
    • find查询详解
    • 示例:
      • 1.按照文件名搜索
      • 2.按照文件大小搜索
      • 3.按照修改时间搜索
      • 4.按照权限搜索
      • 5.按照所有者和所属组搜索
      • 6.按照文件类型搜索
      • 7.逻辑运算符
      • 8.其他选项扩展
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档