如何删除没有特定扩展名的文件?
问题描述:
如何在当前工作目录下递归地删除所有没有.txt
和.exe
扩展名的文件?我需要一个班轮。如何删除没有特定扩展名的文件?
我想:
find . ! -name "*.txt" "*.exe" -exec rm -r {} \
find -type f -regextype posix-extended -iregex '.*\.(txt|exe)$'
答
试试这个。
find . -type f ! -name "*.exe" ! -name "*.txt" -exec rm {} \;
上面的命令将删除所有比当前目录和递归子目录中的.exe和.txt扩展名的文件的其他文件。
+0
谢谢,它的工作。 –
答
如果你有GNU找到与-delete
行动:
find . -type f ! \(-name '*.txt' -o -name '*.exe' \) -delete
如果没有:使用-exec ... {} +
与链接的参数执行rm
只是一次
find . -type f ! \(-name '*.txt' -o -name '*.exe' \) -exec rm -f {} +
。
我认为这可以帮助你: http://unix.stackexchange.com/questions/153862/remove-all-files-directories-except-for-one-file –
你的一个班轮命令工作? – sureshkumar
他们没有工作。该链接也没有帮助。 –