フルパスからディレクトリだけ、ファイル名だけなど、部分的な情報だけ取り出したい場合がある。
以下のようにすると必要なものが取り出せる。

$ cat filepath.sh 
#!/bin/bash

path="/dir1/dir2/file1.txt"
echo "path: $path"

filename=$(basename $path)
echo "filename: $filename"
filename=${path##*/}
echo "filename: $filename"

dirname=$(dirname $path)
echo "dirname: $dirname"
dirname=${path%/*}
echo "dirname: $dirname"

noext=${filename%.*}
echo "noextention: $noext"

ext=${filename##*.}
echo "extension: $ext"
$ ./filepath.sh
path: /dir1/dir2/file1.txt
filename: file1.txt
filename: file1.txt
dirname: /dir1/dir2
dirname: /dir1/dir2
noextention: file1
extension: txt


名前:
コメント:


最終更新:2014年02月16日 14:12