使い方

パスからファイル名を取得するには、basename コマンドを使う。

$ basename "/foo/bar/baz.ext"
baz.ext

パスからディレクトリを取得するには、dirname コマンドを使う。

$ dirname "/foo/bar/baz.ext"
/foo/bar

参考:

パス文字列からディレクトリ部/ファイル名を取得する | ザワプロ!

basename コマンド

パスからファイル名を取得する。

$ basename "/foo/bar/baz.ext"
baz.ext

参考:

basename – フルパスからファイル名を取り出す | Webkaru

ファイル名などを抽出する basename コマンドの使い方まとめ | エンジニアの入り口

ファイル名からディレクトリや拡張子を取り除くには | @IT

basename コマンド – パス名からファイル名を取得する | @IT

basename – ファイル名からディレクトリや末尾の文字列を削除したものを返す | 日経クロステック

Extract file basename without path and extension in bash – Stack Overflow

dirname コマンド

パスからディレクトリを取得する。

$ dirname "/foo/bar/baz.ext"
/foo/bar

参考:

dirname コマンド – パス名からディレクトリ部分を取得する | @IT

Quoting within $(command substitution) in Bash – Unix & Linux Stack Exchange

パラメータ展開でパスを加工する

${filepath##*/}パスからファイル名を取得する。

$ filepath="/foo/bar/baz.ext"
$ echo "${filepath##*/}"
baz.ext

${filepath%/*}パスからディレクトリを取得する。

$ filepath="/foo/bar/baz.ext"
$ echo "${filepath%/*}"
/foo/bar

${filename%.*}拡張子を取り除く。

$ filename="foo.bar.ext"
$ echo "${filename%.*}"
foo.bar

${filename##*.}拡張子を取得する。

$ filename="foo.bar.ext"
$ echo "${filename##*.}"
ext
パラメータ展開
  • %後方最短一致した部分を取り除く
  • ##前方最長一致した部分を取り除く

参考:

パス文字列からファイル名などを抜き出す – Qiita

dirname / basename は「%/*」と「##*/」で書くと処理速度が早くなる – Qiita

変数展開によるファイル名や拡張子の取得 – Qiita

ファイルパスからファイル名や拡張子を自由に取り出す | ザリガニが見ていた…。

ファイル名から拡張子とファイル名を分割して別のファイル名を生成するメモ | cloudpack.media

パスを要素に分解する

参考:

組み込みの正規表現機能を利用してファイルパスを要素に分割してみる | ゲンゾウ用ポストイット

空白/スペースを含むパス

参考:

空白を含むパスを変数にして cd する | clmemo@aka

Whitespace Safety in Shell Scripts | Yakking

How to cd to a directory with a name containing spaces? – Ask Different

How to store a path with white spaces into a variable – Stack Overflow

dirname / basename problems with spaces – Stack Overflow

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA