我是BASH的新人,我试图制作一个简单的剧本。 我想从不同的目录运行脚本,然后脚本应该删除当前目录中的所有文件。 (只有文件) 所以功能是:
eraseAllFiles()
{
rm *
echo "Files deleted!"
sleep 1.3
}
所以命令rm *
删除了我的所有文件,但后来我收到了这个错误:
cannot remove 'XXXXX': is a directory
。
我的问题是如何避免此错误?
答案 0 :(得分:3)
而不是rm
使用find -type f
仅删除文件:
eraseAllFiles() {
find . -maxdepth 1 -type f -delete
echo "Files deleted!"
sleep 1.3
}
答案 1 :(得分:0)
试试这个:
eraseAllFiles()
{
rm * 2>/dev/null
echo "Files deleted!"
sleep 1.3
}
2>/dev/null
部分将标准错误输出发送到/dev/null
,这实际上意味着它不会显示。
答案 2 :(得分:-2)
如果您需要删除文件和目录,请使用
rm -r *