删除所有以问号开头的文件

删除所有以问号开头的文件

我有一个文件夹,其中有大约 4k 个文件。其中一些文件以 aa?!字符开头。我需要删除它们,但找不到可以执行此操作的表达式:

rm -f ./?*

只是删除所有内容。我可能可以使用grepls 并将其通过管道传输xargs并将文件移动到另一个文件夹,但我希望有一种正确的方法可以做到这一点。需要有关?!文件的帮助。

答案1

不需要任何花哨的东西。只需转义,?这样它就不会被视为全局的一部分:

rm -f ./\?*

这也适用于!

rm -f ./\!*

或者一口气:

rm -f ./{\?,\!}*

更新

刚刚注意到您正在grep建议ls.我想让你注意这样一个事实你不应该解析 ls 的输出

答案2

就我而言,这些字符并不是真正的问号,而是显然无法在我的控制台中显示的 unicode 字符。

使用rm -i *对我有用。如果你不想这样做,你也可以按inode删除,如下所述http://www.cyberciti.biz/tips/delete-remove-files-with-inode-number.html

要查找索引节点,请使用:

ls -il

然后做:

find . -inum [inode-number] -exec rm -i {} \;

相关内容