「Shell」- 文件及路径

获取当前脚本路径

SCRIPT_PATH=$(readlink -f "$0")                                                 # 获取脚本的绝对路径
SCRIPT_FOLDER=$(dirname "$SCRIPT_PATH")                                         # 从绝对路径中获取脚本所在目录
echo $SCRIPT_FOLDER

该方法适用于软链接情况:即使执行的时只向脚本的软链接,此方法依旧可以获取脚本的绝对路径,而不是软链接的路径;

删除指定目录以外的目录

Remove all files except some from a directory

shopt -s extglob
rm !(textfile.txt|backup.tar.gz|script.php|database.sql|info.txt)

文件或目录查找

获取某个目录下的 Git 仓库

# 这招是从 OpenJDK 的源码中学的:「make/scripts/hgforest.sh」
ls -d ./.git ./*/.git ./*/*/.git ./*/*/*/.git ./*/*/*/*/.git 2>/dev/null

参考文献

Unix shell script find out which directory the script file resides? – Stack Overflow