【点滴】LINUX之find命令

本文详细介绍Linux下find命令的使用方法,包括基本语法、各种选项及其应用场景。通过实例演示如何查找特定文件并执行操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

好记性不如烂笔头。

find是我们常用的命令,也是linux中一个非常帮的命令,find命令的基本使用如下
find pathname -options [-print -exec -ok command] {} \;
参数:
--print:将结果输出到标准输出
--exec:执行后面的command命令,注意 command {} \;之间的空格
--ok:用法通exec,只不过每次执行都带询问,相对安全,但是需要find结果多的时候每次询问会比较烦
选项:
-name filename     #查找名字为filename的文件
-perm mode     #按权限为mode(如777)查找
-user username     #按属主查询
-group groupname     #按组名查询
-mtime -n/+n     #按文件内容修改时间查询,-n表示n天以内,+n表示n天以外
-atime -n/+n     #按访问时间查询
-ctime -n/+n      #按文件元数据(如权限或所有权)被改变时间访问
-nogroup      #查无有效属组的文件,即所在组在/etc/groups中不存在
-nouser     #查无有效属主的文件,及用户在/ect/passwd中不存在
-newer file1 !file2     #查找比file1文件新但是比file2文件旧的文件
-type typename      #查找某类型文件:b-块设备文件,d-目录,c-字符设备文件,p-管道文件,l-符号链接文件,f-普通类型文件
-size n[c]     #按大小查询文件,查询长度为n块的文件,[c]可以是b、c(字节)、w(2字节)、k、M、G,如find . -type f -size 2k,找2k的普通文件
-depth     #是查找在进入子目录前先遍历完本目录,使用这个options会改变输出顺序
-prune     #忽略某个目录
-iname      #忽略名字大小写
-maxdepth      #查找的最大深度
-mindepth      #查找的最小深度
    maxdepth、mindepth不应出现在find命令的第4个及以后参数位置,会影响find的效率
#find出10天前修改的txt文件,复制到OLD目录
find . -type f -name "*.txt" -exec cp {} OLD \;

-exec结合多个命令:我们无法在-exec后面跟多个命令,但是我们可以将命令都放到command.sh中,然后
-exec ./command.sh {} \;
### Linux 中与 VM(虚拟机)相关的常用命令及其用途 #### 1. Docker 容器管理 Docker 是一种流行的容器化技术,用于创建、部署和运行应用程序。以下是常用的 Docker 命令: - **`docker run`**: 启动一个新的容器实例并执行指定的命令。 ```bash $ docker run --privileged -v /usr/bin/perf:/usr/bin/perf -it my_image /bin/bash ``` 上述命令通过 `--privileged` 提供特权访问,并挂载主机上的 `/usr/bin/perf` 到容器内部[^1]。 - **`docker ps`**: 显示当正在运行的容器列表。 ```bash $ docker ps ``` - **`docker images`**: 查看本地存储的所有镜像。 ```bash $ docker images ``` - **`docker stop` 和 `docker start`**: 控制容器的停止和启动。 ```bash $ docker stop container_id_or_name $ docker start container_id_or_name ``` --- #### 2. GRUB 配置更新 GRUB 是 GNU GRand Unified Bootloader 的缩写,负责引导操作系统。当修改内核模块或其他配置时,可能需要重新生成 GRUB 配置文件。 - 使用 `grub2-mkconfig` 更新 GRUB 配置: ```bash $ grub2-mkconfig -o /boot/grub2/grub.cfg ``` 此命令会扫描系统中的可用内核和其他选项,并生成新的 GRUB 配置文件[^2]。 --- #### 3. MySQL 开机自启和服务控制 对于在虚拟环境中安装的服务(如 MySQL),可以使用 systemd 来管理和启用服务。 - 设置 MySQL 开机自动启动: ```bash $ systemctl enable mysqld ``` 这条命令会在系统的启动过程中注册 MySQL 服务,使其随系统一起启动[^3]。 - 手动启动或停止 MySQL 服务: ```bash $ systemctl start mysqld $ systemctl stop mysqld ``` --- #### 4. 虚拟机监控工具 (virsh) `virsh` 是 libvirt 工具的一部分,专门用来管理 KVM/QEMU 虚拟机。 - 列出所有虚拟机状态: ```bash $ virsh list --all ``` - 启动或关闭虚拟机: ```bash $ virsh start vm_name $ virsh shutdown vm_name ``` - 删除虚拟机定义: ```bash $ virsh undefine vm_name ``` --- #### 5. CPU 性能分析工具 (perf) `perf` 是 Linux 下的一个性能分析工具,常用于调试和优化程序性能。 - 将 perf 工具挂载到 Docker 容器中以便于性能调优: ```bash $ docker run --privileged -v /usr/bin/perf:/usr/bin/perf -it my_image /bin/bash ``` 如上所示,可以通过 `-v` 参数将宿主机的 perf 工具映射至容器环境。 --- #### 6. 系统资源查看 (top, htop, free) 这些工具可以帮助管理员实时监测虚拟机内的资源消耗情况。 - 查看进程占用情况: ```bash $ top ``` - 更友好的界面显示: ```bash $ htop ``` - 检查内存使用状况: ```bash $ free -h ``` --- #### 7. 文件同步工具 (rsync) 在虚拟机之间传输数据时,`rsync` 是一个高效的选择。 - 复制目录到另一台机器: ```bash $ rsync -avz source_directory user@remote_host:destination_directory ``` --- ### 示例脚本:自动化重启 GRUB 并验证配置 ```bash #!/bin/bash echo "Updating GRUB configuration..." grub2-mkconfig -o /boot/grub2/grub.cfg if [ $? -eq 0 ]; then echo "GRUB updated successfully." else echo "Failed to update GRUB!" fi ``` 上述脚本实现了自动化的 GRUB 配置更新流程。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值