2012-02-26 16 views
0

ファイルを元の場所に復元するために拡張しようとしているごみ箱機能があります。私の最初の考えは:ファイルを元の場所に復元する

を変数として使用し、出力を設定ファイルにリダイレクトすることでした。私は少しでもうまくいくとは思えません。

+1

何をしようとしていないとどのようでしたそれは失敗しましたか? – tripleee

+0

私は試しましたが、 'variablename = $(readlink -f $ arg)' 'echo $ variablename >> file.cfg' – Alex

答えて

1

少しの提案(完了していない:何のテスト、エラーハンドリング、同じベース名の無い取り扱い、...):

#!/bin/bash 

TRASH=${HOME}/.trash/ 
TCFG=${HOME}/.trashconfig 

function moveToTrash 
{ 
    FPATH=$(readlink -f "$1") 
    echo $(sha1sum "${FPATH}" | cut -d " " -f 1):${FPATH} >> "${TCFG}" 
    mv "$1" "${TRASH}" 
} 

function restoreFromTrash 
{ 
    SUM=$(sha1sum "$1" | cut -d " " -f 1); 
    FPATH=$(grep ${SUM} "${TCFG}" | cut -d ":" -f 2); 
    mv "$1" "${FPATH}" 
} 

if [ ! -d ${TRASH} ] ; then 
    mkdir -p ${TRASH} 
fi 

if [ $1 == "remove" ] ; then 
    moveToTrash "$2" 
fi 

if [ $1 == "restore" ] ; then 
    restoreFromTrash "$2" 
fi 

使用法:

touch foo 
trash.sh remove foo 
trash.sh restore ${HOME}/.trash/foo 
+0

sha1sum:testfile:そのようなファイルやディレクトリはありません。前にsha1sumを使用しましたが、それは単なるチェックサムコマンドです。それは、それが見えるように動作していない復元だけです。 – Alex

+0

それを無視して、ちょうど私が愚かなそれは素晴らしい、ありがとう。 – Alex

関連する問題