此文件列表:
FILE0001
FILE0002
FILE0003
FILE0004
FILE0005
FILE0006
FILE0007
FILE0008
FILE0009
FILE0010
我想删除除以下内容之外的所有内容:
FILE0001
FILE0008
FILE0010
我该如何表达?
可能有一个非常耗时的表达,因为文件很大。 该目录中还有其他文件。这不会受到影响或被删除。即使是相同的模式名称。
示例:
FILE0001.1
FILE0002.2
答案 0 :(得分:4)
bash模式(http://www.gnu.org/software/bash/manual/bashref.html#Pattern-Matching)
shopt -s extglob
echo rm FILE00!(01|08|10)
删除" echo"如果你满意的话。
答案 1 :(得分:1)
GLOBIGNORE="FILE0001:FILE0008:FILE0010"
echo rm *
答案 2 :(得分:0)
这样的事情可以做到这一点,假设所有文件都在您执行命令的同一目录中,并且没有其他文件或路径需要排除:
find . ! -name 'FILE0001' ! -name 'FILE0008' ! -name 'FILE0010' -exec rm {} /dev/null \;