在 Linux 系统中,Shell 脚本是自动化任务的重要工具。而字符串和目录操作是 Shell 编程中最基础、最常用的功能之一。无论你是刚接触 Linux 的小白,还是有一定经验的用户,掌握 Linux Shell字符串操作 和 Shell目录处理 技巧,都能极大提升你的工作效率。
在日常使用中,我们经常需要:
这些操作都离不开对字符串的处理。而 Linux Shell 提供了多种内置方法,无需额外安装工具即可完成。

path="/home/user/documents/report.txt"filename=$(basename "$path")echo $filename # 输出:report.txt
dir=$(dirname "$path")echo $dir # 输出:/home/user/documents
name="report.txt"base=${name%.*}echo $base # 输出:reportext=${name##*.}echo $ext # 输出:txt在脚本中,经常需要判断某个目录是否存在,如果不存在则创建它:
target_dir="/home/user/backups"if [ ! -d "$target_dir" ]; then mkdir -p "$target_dir" echo "目录已创建:$target_dir"else echo "目录已存在。"fi
这里 -d 是判断是否为目录,! 表示“非”,即“如果目录不存在”。
不要直接用 + 拼接路径!应使用变量组合,并注意避免重复斜杠:
base="/home/user"subdir="projects"full_path="$base/$subdir"# 更安全的方式(自动处理多余斜杠)full_path=$(realpath "$base/$subdir")
realpath 命令可以标准化路径,自动解析 .、.. 并去除多余斜杠,是 Linux文件路径解析 的利器。
假设你想把当前目录下所有 .jpg 文件重命名为 photo_001.jpg、photo_002.jpg……
count=1for file in *.jpg; do if [ -f "$file" ]; then new_name="photo_$(printf "%03d" $count).jpg" mv "$file" "$new_name" echo "重命名: $file → $new_name" ((count++)) fidone
这个脚本展示了如何结合字符串格式化(printf)和文件操作,是 Shell脚本入门 的经典案例。
"$var"),防止空格导致错误set -u 可让脚本在使用未定义变量时报错,提高健壮性[ -d ](目录)、[ -f ](普通文件)等判断掌握 Linux Shell 中的字符串与目录操作,是迈向高效系统管理的第一步。通过本文介绍的 Linux Shell字符串操作、Shell目录处理、Linux文件路径解析 和 Shell脚本入门 技巧,相信你已经能够编写更智能、更安全的 Shell 脚本了。多加练习,你会发现 Shell 的强大远超想象!
本文由主机测评网于2025-11-24发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/202511535.html