dr_lo 23.11.2010 04:09
Tips & tricks — basename & dirname, вычленяем имя файла и путь до файла
Для многих, наверное это не новость, а для меня стало ценным откровением. Ах если бы я не поленился в свое время почитать ман по gnu-utils, не было бы бессонных ночей проведенных за маном по sed.Пример (лучше один раз увидеть):
собственно вольный перевод из мана:
basename - показать только имя файла, без пути
dirname - показать путь к файлу
Еще на заметку пригодится:
filename=$(basename $fullfile)
extension=${filename##*.} #только расширение
filename=${filename%.*} #только имя, без расширения
Ещё полезным бывает узнать полный путь до файла, на который ссылается ссылка
username$ readlink -f linkname
username$ readlink -f linkname
не было бы бессонных ночей проведенных за маном по sed
Надеюсь, Вы об этом не жалеете? :)
ну что вы. если ночное красноглазие не было в удовольствие, я бы этим не занимался =)
На самом деле, sed-ом сделать не так сложноё
К слову, а как можно преобразовать относительный путь в полный?
а-ля:
../lost+found -> /home/lost+found
~/Desktop -> /home//Desktop
~ -> /home/
Последние две вроде башем подставляются, но на всякий случай.
К слову, а как можно преобразовать относительный путь в полный?
а-ля:
../lost+found -> /home/lost+found
~/Desktop -> /home//Desktop
~ -> /home/
Последние две вроде башем подставляются, но на всякий случай.
Сам так и делаю, но это годится только для директорий, да и стандартное средство, сдаётся мне, может быть.
Что-то у меня такое чувство, что не может быть простого стандартного решения без pwd. Или pwd или аналог просто где-то будет спрятан. Ведь как-то нужно узнать абсолютный путь.
readlink -f
Конкретика:
$ readlink -f ~/Desktop/
/home/philosoft/Desktop
$ readlink -f ~
/home/philosoft
Вот уж не думал. А действительно, похоже. Я-то ридлинк для линков только и использовал.
Спасибо
Спасибо
dirname - показать путь к файлу