使用bash命令删除除少数文件以外的所有文件

时间:2017-01-20 08:31:17

标签: linux bash file-management rm

我有一个目录,其中包含许多不同格式的文件。我想知道如何删除具有特定格式的所有文件(比如说* .dat),除了几个相同格式的文件(例如A.dat和B.dat)。请指教!

1 个答案:

答案 0 :(得分:1)

我会写一个小脚本(作为命令行一行,它有点太大了):

#!/bin/sh
for f in *.dat; do
   case $f in
      (A.dat|B.dat)
         ;;           # do nothing
      (*)
         rm -- "$f";; # remove the file
   esac
done

作为替代方案,您可以使用交互式rm -i *.dat,询问您是否应删除每个文件。回答y代表您不再需要的文件,n代表A.datB.dat

像zsh和bash这样的现代shell也为你的问题提供强大的全局功能。我建议你阅读他们的手册页,这将有助于你成为一名熟练的外壳大师。