Bash:从作为输入给出的相对路径获取绝对路径

时间:2014-01-08 12:08:03

标签: bash path relative-path absolute-path

该脚本将要删除的文件的路径作为输入,并且不仅将文件移至垃圾箱,还移至整个文件夹树。

作为输入,文件的绝对路径应该不是问题。 如果它作为输入给出了文件的相对路径,我如何获得移动到垃圾箱的绝对路径?

这是一个执行的肮脏例子:

写下要删除的文件路径---> / home / user / mydata / song.mp3(绝对路径) 在垃圾箱中将获得:.Trash / home / user / mydata / song.mp3

写下要删除的文件路径---> mydata / song.mp3(相对路径) 在垃圾箱中将获得:.Trash / home / user / mydata / song.mp3

2 个答案:

答案 0 :(得分:2)

#!/usr/bin/bash
delete_dir=$(readlink -f $1)

答案 1 :(得分:0)

#!/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