readlink
я использую, чтобы найти полный путь к файлу:Readlink - Как обрезать полный путь?
cek=$(readlink -f "$1")
mkdir -p "$ydk$cek"
mv "$1" "$ydk/$cek/$ydkfile"
Но readlink -f "$1"
дает мне полный путь. Как я могу обрезать полный путь?
Например:
/home/test/test/2014/10/13/log.file
Но мне нужно просто
/test/2014/10/13/
Как я могу это сделать?
Судя по нескольким комментариям:
- Выход должен быть последние четыре компонентов каталога из полного пути возвращаемого
readlink
.
Дано:
full_path=/home/some/where/hidden/test/2014/08/29/sparefile.log
вывод должен быть:
test/2014/08/29
(Не стройте никаких предположений о текущей дате в обрезного код пути.)
Возможно, это может помочь вам: http://stackoverflow.com/questions/2564634/bash-convert-absolute-path -into-relative-path-given-a-current-directory – aioobe
вы просто хотите удалить «/ home/test» или вот какая-то другая логика, о которой вы забыли рассказать? – jm666
Как вы определяете, что нужно обрезать с самого начала имени? Это значение в '$ ydk' или' $ HOME' или что-то еще? –