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
delete_dir=$(readlink -f $1)
#!/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
Другие вопросы по тегам