0

我正在尝试将运行脚本时给出的所有参数移动到一个RecycleBin目录中。我设置RecycleBin为我的主文件夹中的一个目录,使用RecycleBin="$HOME/Recycled".

然后我想将所有参数文件/目录移动到RecycleBin目录中。

这是我到目前为止所得到的:

for  i in $* 
do
if [ $* -e ]
then
mv $i /path/to/RecycleBin/$*.`date +"%Y%m%d.%H%M%S"`
else
echo "The file does not exist"
fi
done

在哪里.date +"%Y%m%d.%H%M%S"附加(date command)每个文件的版本

并且for i in $*正在检查命令中的所有参数。

输出看起来像这样 ./script.sh file1 file2 file3 - 3 个文件被移入其中RecycleBin

这不起作用,因为我的循环功能不正确。

非常感谢帮助

谢谢皮特

4

1 回答 1

2
[ $* -e ]

该测试应该是这样的:

[ -e "$i" ]

同样在mv您应该使用的命令中,$i而不是$*. 就我个人而言,我会完全摆脱这种if说法。mv如果文件不存在,将打印出错误消息,无需自己做。

要处理带有空格的文件名,最好使用"$@"代替$*,并用引号将变量名括起来,如下所示:

for file in "$@"; do 
    mv "$file" "/path/to/RecycleBin/$file.$(date +%Y%m%d.%H%M%S)"
done
于 2013-04-03T16:53:36.073 回答