2014-01-08 81 views
0

脚本将输入要删除的文件的路径作为输入,并将其移至垃圾桶,不仅包括文件,还包括整个文件夹树。Bash:从给定的相对路径获取绝对路径作为输入

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

下面是执行的一个肮脏的例子:

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

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

+0

[bash/fish命令打印文件的绝对路径]的可能重复(http://stackoverflow.com/questions/3915040/bash-fish-command-to-print-absolute-path-to-a-file) – fedorqui

回答

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 
1
#!/usr/bin/bash 
delete_dir=$(readlink -f $1)