如何删除给定文件夹中的所有文件和文件夹,除了一个和文件夹本身



我当前使用以下内容,但dist文件夹也被删除。

find ./dist ! -name '.borgignore' -prune -exec rm -r {} +

我知道./dist/*,但也想删除点文件。

您可以简单地使用GLOBIGNORE,一个简单的bash功能:

$ GLOBIGNORE=./dist/.borgignore
$ printf '%sn' ./dist/*

检查输出,如果正常:

$ rm -rf ./dist/*

说明:当GLOBIGNORE设置为以冒号分隔的模式列表时,路径名扩展会忽略与其中一个模式匹配的文件,并且会自动启用dotglob选项:也就是说,点文件与./dist/*模式匹配,但./dist/../dist/..文件名除外(必须显式列出它们才能匹配(。

相关内容

最新更新