2016-07-26 62 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文件夹,但这也是一个简单的修复,谢谢队友! –