ex57.sh
来自「BASH Shell 编程 经典教程 《高级SHELL脚本编程》中文版」· Shell 代码 · 共 28 行
SH
28 行
#!/bin/bash# badname.sh# 删除当前目录下文件名中包含一些特殊字符的文件.(这些特殊字符指的是不应该出现在文件名中的字符)for filename in *do badname=`echo "$filename" | sed -n /[\+\{\;\"\\\=\?~\(\)\<\>\&\*\|\$]/p`# badname=`echo "$filename" | sed -n '/[+{;"\=?~()<>&*|$]/p'` 这句也行.# 删除文件名包含这些字符的文件: + { ; " \ = ? ~ ( ) < > & * | $# rm $badname 2>/dev/null# ^^^^^^^^^^^ 错误消息将被抛弃.done# 现在, 处理文件名中以任何方式包含空白的文件.find . -name "* *" -exec rm -f {} \;# "find"命令匹配到的目录名将替换到"{}"的位置.# '\'是为了保证';'被正确的转义, 并且放到命令的结尾.exit 0#---------------------------------------------------------------------# 这行下边的命令将不会运行, 因为有 "exit" 命令.# 下边这句可以用来替换上边的脚本: find . -name '*[+{;"\\=?~()<>&*|$ ]*' -exec rm -f '{}' \;# (感谢, S.C.)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?