1. ホーム
  2. linux

[解決済み】Bashでファイルパスの引数に含まれる最後のディレクトリ名/ファイル名を取得する

2022-04-18 13:33:37

質問

開発サーバーでホストされているSVN用のポストコミットフックを書こうとしています。 私の目標は、コミットされたプロジェクトのコピーを、サーバー上でホストされているディレクトリに自動的にチェックアウトしようとすることです。 しかし、私は、プロジェクトがホストされている同じサブディレクトリにチェックアウトするために、スクリプトに渡されたディレクトリ文字列の最後のディレクトリのみを読み取ることができる必要があります。

例えば、私がプロジェクト "example" に SVN コミットする場合、私のスクリプトは最初の引数として "/usr/local/svn/repos/example" を取得します。 文字列の最後から "example" を取り除き、それを別の文字列と連結して、"/server/root/example" にチェックアウトして変更を直ちに確認できるようにする必要があります。

どのように解決するのですか?

basename は、パスのディレクトリプレフィックスを削除します。

$ basename /usr/local/svn/repos/example
example
$ echo "/server/root/$(basename /usr/local/svn/repos/example)"
/server/root/example