Bash从目录中删除文件

时间:2015-04-22 03:54:27

标签: bash

我正在尝试使用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

1 个答案:

答案 0 :(得分:1)

运行:

而不是该脚本
rm ~/Files/Test/*

这将删除测试目录中的所有文件,即使文件名包含空格,制表符或其他困难字符,它也能正常工作。

如果由于一些奇怪的原因,你真的想要一个循环,那么使用:

for fname in ~/Files/Test/*
do
    rm "$fname"
done

即使文件名很难,这也能正常工作。