我有一个回收站功能,我正在尝试扩展以将文件还原到其原始位置。我最初的想法是使用:
readlink -f $arg
作为变量并将输出重定向到配置文件。我似乎无法做到这一点,任何想法?
答案 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