Решения тех проблем, с которым мне приходилось сталкиваться.

вторник, 21 апреля 2009 г.

имя файла, путь, расширение

Полезно при написании скриптов на bash, которые конвертят и/или переносят файлы.
Имеется полное имя файла. Как извлечь разные его компоненты (отдельно путь, имя с раширением, имя без расширения, отдельно расширение)


foo=/tmp/my.dir/filename.tar.gz

path = ${foo%/*}
file = ${foo##*/}
base = ${file%%.*}
ext = ${file#*.}


При этом получается следующее:

path=/tmp/my.dir
file=filename.tar.gz
base=filename
ext=tar.gz


Первые два выражения аналогичны командам dirname и basename соответственно.

источник