Rm
rm -f 以數字開頭的文件
我不小心將 CSV 文件的輸出重定向到我的目錄。我怎樣才能
rm
只保留以數字開頭的文件,而保留以字母開頭的文件?mymachine$ ls 71.24 README.md 30 4.29 8 filter.sh 42.81 5.58 8.36 purchases.csv 1,208.8 100 16.7 2.56 21.78 269.96
這樣的事情應該這樣做:
$ rm [0-9]*
echo
請記住,在讓rm
它們執行之前,您始終可以使用任何 globbing 參數。$ echo [0-9]* 100 1,208.8 16.7 21.78 2.56 269.96 30 42.81 4.29 5.58 71.24 8 8.36
執行
rm
上面的命令後:$ ls filter.sh purchases.csv README.md
在這種情況下,您還可以輕鬆地
find
與-regex
和-delete
選項結合使用。在文件夾中,首先測試您的文件選擇:
$ find . -regex "[^/]+/.*[0-9]+"
然後添加
-delete
選項:$ find . -regex "[^/]+/.*[0-9]+" -delete
您的文件現已刪除:
$ ls filter.sh purchases.csv README.md
始終首先檢查您的選擇,因為使用
[^/]+/.*[0-9]+
正則表達式將選擇任何末尾包含數字的文件(例如md5
或hdf5
)。請注意,
find
自動處理子目錄也是如此。如果您不想-maxdepth 1
在正則表達式之前添加此內容。對於 OS X 添加該
-E
選項。