Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何避免错误`无法删除';XXXXX';:是一个目录`_Bash - Fatal编程技术网

Bash 如何避免错误`无法删除';XXXXX';:是一个目录`

Bash 如何避免错误`无法删除';XXXXX';:是一个目录`,bash,Bash,我是BASH新手,我正在尝试制作一个简单的脚本。 我想从其他目录运行脚本,然后脚本应该删除我当前目录中的所有文件。(仅限文件) 因此,功能是: eraseAllFiles() { rm * echo "Files deleted!" sleep 1.3 } 因此,命令rm*删除了我的所有文件,但我得到了以下错误: 无法删除“XXXXX”:是一个目录 我的问题是如何避免此错误?尝试以下方法: eraseAllFiles() { rm * 2>/

我是BASH新手,我正在尝试制作一个简单的脚本。 我想从其他目录运行脚本,然后脚本应该删除我当前目录中的所有文件。(仅限文件) 因此,功能是:

eraseAllFiles()
{   
    rm * 
    echo "Files deleted!"
    sleep 1.3
}
因此,命令
rm*
删除了我的所有文件,但我得到了以下错误:

无法删除“XXXXX”:是一个目录

我的问题是如何避免此错误?

尝试以下方法:

eraseAllFiles()
{   
    rm * 2>/dev/null
    echo "Files deleted!"
    sleep 1.3
}

2>/dev/null
部分将标准错误输出发送到
/dev/null
,这实际上意味着它不会显示。

而不是
rm
使用
查找-type f
仅删除文件:

eraseAllFiles() {   
    find . -maxdepth 1 -type f -delete 
    echo "Files deleted!"
    sleep 1.3
}

如果需要同时删除文件和目录,请使用

rm -r *

-delete
并非所有版本的
find
都支持;标准的方法是
-exec-rm{}+
。没错,非gnu平台
-exec-rm{}+
应该可以工作。