2011-07-16 73 views
3

bash中如何刪除文件名中含有星號的文件?我的意思是,使用通配符。如果我做bash刪除文件名中含有星號的文件

rm -fr *filter* 

我會刪除其中單詞「過濾器」出現在文件名中的所有文件,但什麼時候文件不包含星號?

編輯:按照你的意見,我不能夠刪除

*filter*xyz*.data 
+0

如果你告訴我們哪些那些星號的是文字的,哪些是外卡這將有助於。 –

+0

如果'ls * filter *'顯示你的文件,那麼'rm * filter *'將會刪除它。 –

回答

8

rm -rf \*filter\*rm -rf '*filter*'

+0

它不工作,閱讀我的問題編輯 – flow

+0

,並感謝您的答案! – flow

+0

你只需要「逃避」實際星號的星號。所以,如果你想刪除所有包含'filter'的文件,然後跟着一個星號,然後是'xyz',然後是任何其他字符,並以'.data'結尾,你可以使用'rm -rf * filter \ * xyz *。數據' –

0
rm -rf '*filter*' 

應該很好地工作。使用引號(根據評論更新爲單個)。

+1

單引號可能會更好。 –

+0

它不起作用 – flow

+0

@Paul +1我不知道單引號和雙引號之間的細微差別。對於星號雙精度是可以的,但對於其他字符,保留特殊含義。謝謝! http://www.faqs.org/docs/bashman/bashref_8.html#SEC8 – mikey