我正在尝试使用while循环从测试目录中删除文件。我的测试目录中总共有8个文件。我通过rm: cannot remove file1: No such file or directory
继续收到错误file8
。这就是我所拥有的......我在哪里错了,我该如何纠正呢?
var=(`ls ~/Files/Test`)
x=${#var[@]}
i=0
while [ $i -lt $x ] ; do
rm "${var[$i]}"
((i++))
done
答案 0 :(得分:1)
运行:
而不是该脚本rm ~/Files/Test/*
这将删除测试目录中的所有文件,即使文件名包含空格,制表符或其他困难字符,它也能正常工作。
如果由于一些奇怪的原因,你真的想要一个循环,那么使用:
for fname in ~/Files/Test/*
do
rm "$fname"
done
即使文件名很难,这也能正常工作。