【发布时间】:2014-06-08 17:06:36
【问题描述】:
我有一个包含一些文件扩展名的文件夹,我想删除除 html 扩展名之外的所有文件。谁能帮帮我?
【问题讨论】:
-
@jmetz:这个问题的解决方案不太好接受。
-
@anubhava:这个问题仍然是重复的,答案包含到目前为止这里给出的所有答案。投票由用户决定。
标签: regex linux bash delete-file rm
我有一个包含一些文件扩展名的文件夹,我想删除除 html 扩展名之外的所有文件。谁能帮帮我?
【问题讨论】:
标签: regex linux bash delete-file rm
你可以使用这个查找命令:
find /your/path -maxdepth 1 -type f ! -name '*.html' -delete
【讨论】:
"*.html" 也不是。
-type f 的文件中。此外,这样的否定匹配对于find 可能是危险的,因为. 已匹配!
-a 没用 :D。
使用bash 的 extglob 功能。要启用它,如果它尚未开启:
shopt -s extglob
然后你可以简单地否定 glob:
rm !(*.html)
【讨论】:
$ find . -type f ! -name '*.html' -delete