GNU/Linux >> Linux の 問題 >  >> Linux

Bashでファイルパス引数の最後のディレクトリ名/ファイル名を取得する

次のアプローチを使用して、パス名の任意のパスを取得できます:

some_path=a/b/c
echo $(basename $some_path)
echo $(basename $(dirname $some_path))
echo $(basename $(dirname $(dirname $some_path)))

出力:

c
b
a

Bash は、外部の basename を呼び出すことなく、パスの最後の部分を取得できます。 :

dir="/path/to/whatever/"
dir="${dir%/}"             # strip trailing slash (if any)
subdir="${dir##*/}"

これは、Bash のパラメーター拡張を使用して、最後の (残りの) スラッシュの前の文字列の部分を削除します。


basename パスのディレクトリ接頭辞を削除します:

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

外部コマンドを使用せずにファイル名を出力するには、

実行:

fileNameWithFullPath="${fileNameWithFullPath%/}";
echo "${fileNameWithFullPath##*/}" # print the file name

このコマンドは basename よりも速く実行する必要があります と dirname .


Linux
  1. パス変数がBashで設定されている場所の完全なビュー?

  2. bashでパスと拡張子なしでファイルのベース名を抽出します

  3. BASH で mv を使用してファイル名にタイムスタンプを追加する

  1. シェルでフォルダー パスの最後の部分を取得します。

  2. ファイルを bash シェル スクリプトに含める方法

  3. CからLinuxで現在のファイル(pwd)へのパスを取得する方法は?

  1. Bashスクリプト内からフルパスを取得しますか?

  2. bashでファイルの絶対ディレクトリを取得するにはどうすればよいですか?

  3. ファイルの行数だけを取得する方法