2016-07-26 30 views
0

我有一個循環,通過文件夾名基本上遞歸方式刪除文件夾:Cmder別名現有循環

for /d /r . %d in (node_modules) do @if exist "%d" rm -rf "%d" 

這工作得很好,如果我通過自身內部cmder運行它,它會從當前設置目錄循環,然後刪除它找到的任何實例。

我想看到的,因爲它是一個一個班輪,我可以很容易地將其添加爲別名邊做邊cmder:

cnode=for /d /r . %d in (node_modules) do @if exist "%d" rm -rf "%d" 

cnode ==(乾淨節點),這只是一些容易記憶,但是當我運行命令它根本沒有做任何事情。

任何想法?

+0

這並未看起來不是'bash'。 – chepner

回答

2

find ./node_modules -name 'foo' -type d -exec rm -rf {} \;

或發現node_modules命名爲 '富' 的任何目錄,並在其上運行rm -rf

它可以通配符太:

find ./node_modules -name 'foo*' -type d -exec rm -rf {} \;

,如果你希望它是一個別名你必須使它成爲一個功能。 創建一個文件aliases並使其:

#!/bin/bash function remove_dir() { find ./node_modules -name "'$1*'" -type d -exec rm -rf {} \; }

,什麼別人說,你在做一批在Windows上,如果你可以使用bash,我已經將它給你

+0

我只是把它改成'cnode = find。 -name「node_modules」-type d -prune -exec rm -rf {};'因爲它正在吐出'exec缺少的參數',快速谷歌爲我解決了這個問題。還想搜索當前目錄下,尋找node_modules文件夾,但這也是一個簡單的修復,謝謝隊友! –