我正在尝试创建一个删除脚本,该脚本使用正则表达式将所有匹配的文件移动到我的主目录中的Trash文件夹。我希望能够使用与vanilla rm命令相同的语法,但不能永久删除它。我似乎无法通过pwd中的所有匹配文件来运行它。它将移动一个文件,然后退出。这是我的剧本。
file=$1
for i in $file; do
mv "$file" "/home/totallykvothe/Trash/$i"
done
exit 0
非常简单。我不知道为什么它不起作用。提前谢谢。
答案 0 :(得分:0)
当您运行./yourscript *.txt
时,*.txt
不仅仅是放入$1
的一个参数;相反,它是一个由shell扩展的glob(要清楚 - 不是shell 运行你的脚本,而是shell 启动你的脚本)到列表的参数。第一个是$1
,第二个是$2
,等等。
因此:
for i in "$@"; do
mv -- "$i" "/home/totallykvothe/Trash/$i"
done