Bash: получить абсолютный путь из относительного пути, заданного в качестве входных данных
Сценарий принимает в качестве входных данных путь к файлу для удаления и перемещения в корзину не только файлов, но и всего дерева папок.
Принимая в качестве входных данных абсолютный путь к файлу не должно быть проблемой. Если в качестве входных данных указан относительный путь к файлу, как мне получить абсолютный путь для перемещения в корзину?
Вот грязный пример выполнения:
Напишите путь к файлу, который нужно удалить ---> / home/user/mydata/song.mp3 (абсолютный путь). В корзину попадет: .Trash/home/user/mydata/song.mp3
Напишите путь к файлу, который будет удален ---> mydata/song.mp3 (относительный путь) В корзину попадет: .Trash/home/user/mydata/song.mp3
2 ответа
#!/usr/bin/bash
read path
if [[ "$path" =~ ^/home/user ]] ; then
echo mv $path Trash$path
else
echo mv /home/user/$path Trash/home/user/$path
fi