СабжПока сделано так, ибо tar не понимает путей с /../ внутри...
dir="/tmp/sdaf/dsg/dg/df/gd/hf/d"
cd $dir/.. && dir2="$(pwd)"Где-то видел вариант с awk, но не могу найти...
> Сабж
> Пока сделано так, ибо tar не понимает путей с /../ внутри...
>
> dir="/tmp/sdaf/dsg/dg/df/gd/hf/d"
> cd $dir/.. && dir2="$(pwd)"
>
> Где-то видел вариант с awk, но не могу найти...man realpath
>> Сабж
>> Пока сделано так, ибо tar не понимает путей с /../ внутри...
>>
>> dir="/tmp/sdaf/dsg/dg/df/gd/hf/d"
>> cd $dir/.. && dir2="$(pwd)"
>>
>> Где-то видел вариант с awk, но не могу найти...
> man realpath1) чем realpath лучше pwd ?
2) мне надо текстовая операция над переменной - полным путем директории.
>>> Сабж
>>> Пока сделано так, ибо tar не понимает путей с /../ внутри...
>>>
>>> dir="/tmp/sdaf/dsg/dg/df/gd/hf/d"
>>> cd $dir/.. && dir2="$(pwd)"
>>>
>>> Где-то видел вариант с awk, но не могу найти...
>> man realpathдык ты сразу говори что это тебя какая-то хрень, а не реальный путь на фс
всё таки ман почитай, realpath тебе отдаст реальный абсолютный путь без точек
если путь таки существует на тазике так как ты делаешь в него cd - дарю:
dir="/tmp/sdaf/dsg/dg/df/gd/hf/d"
echo $(realpath $dir/../)
Как-то так:
dir="/tmp/sdaf/dsg/dg/df/gd/hf/d"
dir2="$(echo $dir | awk -F/ '{ for (i = 1; i < NF; i++) printf $i"/"; }')"
> Как-то так:
>
> dir="/tmp/sdaf/dsg/dg/df/gd/hf/d"
> dir2="$(echo $dir | awk -F/ '{ for (i = 1; i <
> NF; i++) printf $i"/"; }')"
>+
${dir%/*} # косячит с / в конце
dir2="$(dirname "${dir}")"
dirn() { echo "${1%/?*}"; }
dir2="$(dirn "${dir}")"dir2="${dir%/?*}"
> ${dir%/*} # косячит с / в концеда-да, хардкор никто не отменял ))
dir="/tmp/sdaf/dsg/dg/df/gd/hf/d"
dir2="${dir%/*}/"чуть про sed не забыл!
sed 's|\(.*/\).*$|\1|'
но в "попугаях" длиннее ))
man 1 dirname
> man 1 dirnameда, подходит, при существовании реальных директорий.
> да, подходит, при существовании реальных директорий.При не существовании тоже:
$ dirname /tmp/sdaf/dsg/dg/df/gd/hf/d
/tmp/sdaf/dsg/dg/df/gd/hf
$
$ ls /tmp/sdaf/dsg/dg/df/gd/hf
ls: невозможно получить доступ к /tmp/sdaf/dsg/dg/df/gd/hf: Нет такого файла или каталога