【发布时间】:2015-06-17 03:58:28
【问题描述】:
我正在通过添加类似于回收站的功能来模仿 rm 行为。这是我的代码到目前为止的样子:
#!/bin/bash
# tests if bin does not exist and if true, create it
binName=$HOME/deleted
if [ ! -d $binName ]
then
mkdir $binName
else
echo "recycle bin exists"
fi
if [ $# -eq 0 ] ; then
echo "No argument passed"
elif [ -d $1 ] ; then
echo "is dir"
elif [ ! -e $1 ] ; then
echo "does not exist"
else
mv $1 $binName
fi
我正在努力在移动文件的末尾添加一个低于分数和 inode 编号,以避免 bin 目录中的重复文件错误。我尝试使用 link 中的大括号扩展,但它会导致错误。
【问题讨论】:
-
你使用的是什么操作系统?
-
出于好奇,如果用户将两个硬链接“回收”到具有相同基本名称的同一个底层文件,你会怎么做?例如。
mkdir foo; mkdir bar; touch foo/a; ln foo/a bar/; recycle foo/a; recycle bar/a? -
我在 windows 7 上使用 putty ssh 进入我的 unix 环境
-
@pilcrow 我这周才开始学习 unix - 我基本上正在构建两个脚本,一个将文件移动到回收站目录,另一个将文件恢复到其原始位置,由隐藏将包含源信息的文件。老实说,我不明白硬链接是什么
-
@Singh,欢迎来到 Unix!这是一个不错的地方。当我们的意思是多个文件指向同一个 inode 时,我们谈论“硬链接”。在这种情况下,文件将具有相同的 inode 编号:您的脚本将要“回收”
foo/a到$HOME/deleted/a_12345(或其他)和bar/a到$HOME/deleted/a_12345