首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bash问题中的回收站

问bash问题中的回收站
EN

Stack Overflow用户
提问于 2011-06-15 19:19:45
回答 4查看 699关注 0票数 0

我需要使用bash创建一个回收站代码。以下是我到目前为止所做的工作。我的问题是,当我将一个同名的文件移到垃圾桶文件夹中时,它只是覆盖了以前的文件。你能给我一些关于如何处理这个问题的建议吗?

代码语言:javascript
复制
#!/bin/bash

mkdir -p "$HOME/Trash"
if [ $1 = -restore ]; then
    while read file; do
    mv $HOME/Trash/$2 /$file
    done < try.txt
else
    if [ $1 = -restoreall ]; then
        mv $HOME/Trash/* /$PWD
    else
        if [ $1 = -empty ]; then
            rm -rfv /$HOME/Trash/*
        else
            mv $PWD/"$1"/$HOME/Trash
            echo -n "$PWD" >> /$HOME/Bash/try
        fi
    fi
fi
EN

回答 4

Stack Overflow用户

发布于 2011-06-15 19:21:35

您可以将删除时间的时间戳附加到回收站文件夹中的文件名上。在恢复时,您可以再次将其剥离。

票数 2
EN

Stack Overflow用户

发布于 2011-06-15 20:14:17

要将时间戳添加到文件中,请使用类似以下内容:

代码语言:javascript
复制
DT=$(date +'%Y%m%d-%H%M%S')
mv $PWD/"$1" "/$HOME/Trash/${1}.${DT}"

例如,这将在移动initrd.img-2.6.28-11-generic时创建一个类似initrd.img-2.6.28-11-generic.20110615-140159的文件。

要获得原始文件名,请从最后一个点开始剥离所有内容,如:

代码语言:javascript
复制
NAME_WITHOUT_TIMESTAMP=${file%.*-*}

模式在百分比字符之后的右侧。(.*也足以匹配。)

票数 2
EN

Stack Overflow用户

发布于 2011-06-21 08:20:49

看看trash-cli是如何做到的。它是用Python编写的,使用与桌面环境相同的回收站。Trash-cli至少在大型Linux发行版中是可用的。

http://code.google.com/p/trash-cli/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6356896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档