29

pwd と入力すると、次のようになります。

/home/username/Desctop/myfolder/

最後の部分をどうするか?myfolderパス。

これは簡単なはずですが、シェルで簡単な解決策を見つけることができませんでした。これを Java で処理する方法は知っていますが、シェルでは処理しません。

ありがとう

4

6 に答える 6

30

その通りです。これは簡単なコマンドです。

basename "$PWD"
于 2012-05-18T14:10:08.547 に答える
13

使用するのbasename $(pwd)、無駄で高価な 2 つのフォークです。

echo "${PWD##*/}"

高価なフォークなしでシェルで完全にトリックを実行する必要があります (問題: ルート ディレクトリの場合、これは空の文字列です)。

于 2012-05-19T11:36:38.167 に答える
2

Linuxには、コマンドのペアとがありdirnameますbasenamedirnameパスの最後の部分を除くすべてを抽出し、パスbasenameの最後の部分だけを抽出します。

この場合、を使用basenameすると、必要な処理が実行されます。

basename $(pwd)

于 2012-05-19T11:33:02.960 に答える
1

basename最後の部分が実際にディレクトリコンポーネント(ファイルではない)である場合は、そのために使用できます。

$ basename /home/username/Desctop/myfolder/
myfolder
于 2012-05-18T14:09:01.867 に答える
0

パスの最後の部分を抽出するには、次を使用してみてくださいbasename...

basename $(pwd);
于 2012-05-18T14:09:14.350 に答える
0
function basename {
    shopt -s extglob
    __=${1%%+(/)}
    [[ -z $__ ]] && __=/ || __=${__##*/}
}

basename "$PWD"
echo "$__"
于 2014-06-05T06:39:22.510 に答える