2014-01-08 129 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)