将文件还原到其原始位置

时间:2012-02-26 17:29:07

标签: bash shell

我有一个回收站功能,我正在尝试扩展以将文件还原到其原始位置。我最初的想法是使用:

readlink -f $arg 

作为变量并将输出重定向到配置文件。我似乎无法做到这一点,任何想法?

1 个答案:

答案 0 :(得分: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