rm:无法删除目录:`。'

时间:2017-03-10 07:35:25

标签: bash

执行此命令

find . -maxdepth 1 '!' -name .scm -exec rm -rf {} + || true
如果没有可用的文件,

非常好。否则会产生类似

的消息
rm: cannot remove directory: `.'

但命令按预期工作。我是否必须为此消息烦恼?我该如何克服这个问题?

祝你好运

1 个答案:

答案 0 :(得分:1)

在Bash中,您可以使用extended globbing来简化此操作(匹配任何以.scm结尾的文件,包括.scm本身):

$ shopt -s extglob
$ cd -- "$(mktemp --directory)"
$ touch .scm bar.txt
$ ls -a !(*.scm) # Change to `rm -rf`
bar.txt

或者您可以关注Jameson's suggestion并使用-mindepth

find . -mindepth 1 -maxdepth 1 '!' -name .scm -exec rm -rf {} + || true