Linux系统11个高级文件与目录操作命令示例
Linux高级文件与目录操作命令33个实用示例详解
本文深入讲解Linux系统中11个高级文件与目录操作命令,每个命令有3个实用示例,共33个示例,帮助您掌握这些命令的核心用法和实用技巧。
一、find - 文件查找神器
示例1:按名称查找文件
bash
find /home/user -name "*.txt"
查找/home/user目录下所有.txt文件
示例2:按文件大小查找
bash
find /var/log -size +10M -exec ls -lh {} \;
查找/var/log目录下大于10MB的文件并显示详细信息
示例3:按修改时间查找并删除
bash
find /tmp -mtime +7 -type f -delete
删除/tmp目录下7天前修改过的普通文件
二、locate - 快速文件查找
示例1:基本查找
bash
locate nginx.conf
快速查找系统中所有nginx.conf文件
示例2:限制查找数量
bash
locate -l 5 "*.log"
仅显示前5个.log文件的查找结果
示例3:更新数据库后查找
bash
sudo updatedb && locate -i "report*.pdf"
更新数据库后不区分大小写查找report开头的PDF文件
三、which - 定位命令路径
示例1:查找命令路径
bash
which python3
显示python3命令的完整路径
示例2:显示所有匹配路径
bash
which -a java
显示系统中所有java命令的路径
示例3:检查命令是否存在
bash
which docker >/dev/null && echo "已安装" || echo "未安装"
检查docker是否安装并给出提示
四、whereis - 定位命令相关文件
示例1:查找命令相关文件
bash
whereis git
显示git命令的二进制文件、源码和手册页位置
示例2:仅查找二进制文件
bash
whereis -b node
仅显示node命令的二进制文件位置
示例3:查找特定类型的文件
bash
whereis -m -B /usr/bin -f gcc
在/usr/bin目录下查找gcc的手册页
五、ln - 创建文件链接
示例1:创建硬链接
bash
ln file.txt file_hardlink.txt
为file.txt创建硬链接file_hardlink.txt
示例2:创建符号链接
bash
ln -s /var/www/html webroot
创建指向/var/www/html的符号链接webroot
示例3:强制覆盖已有链接
bash
ln -sf /new/path/to/file existing_link
强制更新existing_link指向新的文件路径
六、stat - 显示文件状态
示例1:显示文件详细信息
bash
stat /etc/passwd
显示/etc/passwd文件的详细信息
示例2:自定义输出格式
bash
stat -c "%n: %U:%G %A %s bytes" /var/log/syslog
以自定义格式显示文件信息:文件名:用户:组 权限 大小
示例3:显示文件系统状态
bash
stat -f /
显示根目录所在文件系统的状态信息
七、tree - 目录树状展示
示例1:基本目录结构
bash
tree -L 2 /etc
以树状图显示/etc目录,深度为2级
示例2:显示权限信息
bash
tree -p /home/user
显示目录树及各文件权限信息
示例3:仅显示目录
bash
tree -d /usr/local
仅显示/usr/local下的目录结构,不包含文件
八、rename - 批量重命名
示例1:简单替换
bash
rename 's/\.jpeg/\.jpg/' *.jpeg
将所有.jpeg文件扩展名改为.jpg
示例2:复杂重命名
bash
rename 'y/A-Z/a-z/' *
将当前目录下所有文件名改为小写
示例3:添加前缀
bash
rename 's/^/backup_/' *.conf
为所有.conf文件添加backup_前缀
九、realpath - 显示绝对路径
示例1:解析相对路径
bash
realpath ../Documents
显示../Documents的绝对路径
示例2:解析符号链接
bash
realpath -s /usr/bin/python
显示/usr/bin/python的绝对路径(不解析符号链接)
示例3:规范化路径
bash
realpath --canonicalize-missing /nonexistent/path
即使路径不存在也规范化显示其绝对路径
十、basename - 提取文件名
示例1:基本用法
bash
basename /var/log/syslog
从路径中提取文件名syslog
示例2:去除扩展名
bash
basename /home/user/file.txt .txt
提取文件名并去除.txt扩展名
示例3:处理多个路径
bash
basename -a /path/to/file1 /path/to/file2
批量处理多个路径,提取文件名
十一、dirname - 提取目录路径
示例1:基本用法
bash
dirname /var/log/nginx/access.log
提取文件路径中的目录部分/var/log/nginx
示例2:处理多个路径
bash
dirname -z /path/to/file1 /path/to/file2 | xargs -0 ls
批量处理多个路径并传递给ls命令
示例3:与basename配合
bash
for file in /path/to/*; do
dir=$(dirname "$file")
name=$(basename "$file")
echo "文件$name位于目录$dir"
done
组合使用dirname和basename处理文件路径