pwd と入力すると、次のようになります。
/home/username/Desctop/myfolder/
最後の部分をどうするか?myfolder
パス。
これは簡単なはずですが、シェルで簡単な解決策を見つけることができませんでした。これを Java で処理する方法は知っていますが、シェルでは処理しません。
ありがとう
その通りです。これは簡単なコマンドです。
basename "$PWD"
使用するのbasename $(pwd)
は、無駄で高価な 2 つのフォークです。
echo "${PWD##*/}"
高価なフォークなしでシェルで完全にトリックを実行する必要があります (問題: ルート ディレクトリの場合、これは空の文字列です)。
Linuxには、コマンドのペアとがありdirname
ますbasename
。dirname
パスの最後の部分を除くすべてを抽出し、パスbasename
の最後の部分だけを抽出します。
この場合、を使用basename
すると、必要な処理が実行されます。
basename $(pwd)
basename
最後の部分が実際にディレクトリコンポーネント(ファイルではない)である場合は、そのために使用できます。
$ basename /home/username/Desctop/myfolder/
myfolder
パスの最後の部分を抽出するには、次を使用してみてくださいbasename
...
basename $(pwd);
function basename {
shopt -s extglob
__=${1%%+(/)}
[[ -z $__ ]] && __=/ || __=${__##*/}
}
basename "$PWD"
echo "$__"