我正在使用卸载程序脚本删除安装脚本的父文件夹.
/usr/local/Myapplication/Uninstaller/uninstall.sh
Run Code Online (Sandbox Code Playgroud)
所以uninstall.sh必须这样做:
rm- rf /usr/local/Myapplication
Run Code Online (Sandbox Code Playgroud)
我可以检索卸载所在的文件夹
SYMLINKS=$(readlink -f "$0")
UNINSTALL_PATH=$(dirname "$SYMLINKS")
Run Code Online (Sandbox Code Playgroud)
但我仍然不确定获得父路径的漂亮方式.我想过使用sed去除这条路径的"Uninstaller"部分,但是有一种优雅的方法来获取Myapplication文件夹的路径来删除它吗?
谢谢
Bol*_*wyn 13
怎么样使用dirname
两次?
APP_ROOT="$(dirname "$(dirname "$(readlink -fm "$0")")")"
Run Code Online (Sandbox Code Playgroud)
引用desaster只是为了防止路径中的空白.否则它会更令人愉悦:
APP_ROOT=$(dirname $(dirname $(readlink -fm $0)))
Run Code Online (Sandbox Code Playgroud)
只需获取父目录的父目录:
my_app_path=$(dirname $(dirname $(readlink -f "$0")))
Run Code Online (Sandbox Code Playgroud)
我把这个答案作为评论放在2018年。但由于我得到了关于该解决方案有效性的良好反馈,我也将在这里分享:
# dir of script
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )";
# parent dir of that dir
PARENT_DIRECTORY="${DIR%/*}"
Run Code Online (Sandbox Code Playgroud)