I have a folder in which I have around 4k files. Some of these files start with a a ? or ! character. I need to delete them but can't find an expression that would do so: rm -f ./?* just deletes everything. I can possibly use grep on ls and pipe it through xargs and move files to another folder but I was hoping there was a proper way of doing this. Need help on both the ? and ! files. 
Delete all files starting with a question mark
shell;wildcards;quoting
No need for any fancy stuff. Simply escape the ? so that it's not considered part of the glob:rm -f ./\?*This works for ! too:rm -f ./\!*Or in one fell swoop:rm -f ./{\?,\!}*UpdateJust noticed that you were suggesting to grep the output of ls. I wanted to bring your attention to the fact that you shouldn't parse the output of ls