如果我有一个文件路径,例如…

/home/smith/Desktop/Test
/home/smith/Desktop/Test/

我如何改变字符串,使它将是父目录?

e.g.

/home/smith/Desktop
/home/smith/Desktop/

当前回答

如果出于某种原因,你想要浏览特定数量的目录,你也可以这样做:nth_path=$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && & cd ../../../ && pwd)。这将提供3个父目录

其他回答

如果出于某种原因,你想要浏览特定数量的目录,你也可以这样做:nth_path=$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && & cd ../../../ && pwd)。这将提供3个父目录

如果你只需要父目录的名称:

parent_dir_name=$(basename $(dirname $PWD))

只需使用echo $(cd ../ && pwd),同时在您想要查找的父目录中工作。这个链还有一个额外的好处,就是没有后面的斜杠。

这个会被放到父文件夹中

cd ../
dir=/home/smith/Desktop/Test
parentdir="$(dirname "$dir")"

如果后面有斜杠,也可以。