如何从命令行删除一个文件夹中的所有文件(减去一个文件 (.zip))?我正在使用 bash 通过 ssh 连接到我想要执行此操作的服务器。我知道我可以使用rm -rf *
那个文件夹,但我需要保留压缩文件,因为它包含所有新文件以替换其他文件。我如何从命令行执行此操作?
答案1
$ shopt -s extglob
$ rm -fr !(*.zip)
info "(bash) Pattern Matching"
If the extglob shell option is enabled using the shopt builtin, several extended pattern matching opera‐
tors are recognized. In the following description, a pattern-list is a list of one or more patterns sep‐
arated by a |. Composite patterns may be formed using one or more of the following sub-patterns:
?(pattern-list)
Matches zero or one occurrence of the given patterns
*(pattern-list)
Matches zero or more occurrences of the given patterns
+(pattern-list)
Matches one or more occurrences of the given patterns
@(pattern-list)
Matches one of the given patterns
!(pattern-list)
Matches anything except one of the given patterns
答案2
find . ! -name 'file.zip' -delete