using rm *.sh
删除以 .sh 结尾的文件很容易且易于理解。但是如何删除当前目录中所有不以以下结尾的文件.jar
就像是rm * -except *.jar
尝试这个:
find . -mindepth 1 -maxdepth 1 ! -name '*.jar' | sort
如果您确实想删除其输出中的所有文件,那么只需执行
find . -mindepth 1 -maxdepth 1 ! -name '*.jar' -delete
您可以阅读 find(1) 手册页,以获取有关这个真正强大的工具的更多信息。
EDIT:
由于 -delete 标志仅在 GNU find > 4.2.3 中找到(正如 SiegeX 所指出的),这里有几个替代方案,这也确保我们不会尝试删除目录:
find . -mindepth 1 -maxdepth 1 ! -type d ! -name '*.jar' -print0 | xargs -0 -r rm -f
-r xargs 标志是 GNU 扩展,因此这稍微更便携(它适用于 *BSD),但不那么干净:
find . -mindepth 1 -maxdepth 1 ! -type d ! -name '*.jar' -print0 | xargs -0 rm -f
作为最后但也是最便携的手段:
find . -mindepth 1 -maxdepth 1 ! -type d ! -name '*.jar' -exec rm '{}' ';'
这样做的缺点是为每个文件单独调用 rm ,这会使其速度明显变慢。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)