我有一个查找表达式查找node_modules
目录。一些结果是父node_modules
目录中的node_modules
目录。
我只对找到最顶层node_modules
目录并对其执行操作感兴趣,即添加.metadata_never_index
文件,以便Spotlight(macOS)不对其进行索引
我正在努力寻找解决这个问题的解决方案;可以找到我这样做,还是我需要手动计算(可能通过字符串操作)?
作为奖励,如果可能的话,我想忽略已包含.metadata_never_index
文件的所有文件夹。
编辑:某些背景;这将作为一个cron作业运行,并定期在我的node_modules
目录中查找~/Sites
,即多个顶级项目。
答案 0 :(得分:1)
经过一番搜索后,我在SuperUser找到了解决方案。
总结Paxali的答案:
find /home/code -type d -name ".git" | grep -v '\.git/'
在英语中:找到所有名为“.git”的目录,并过滤掉结果列表中包含“.git /”(点git斜杠)的任何出现。
除了我的情况,我使用node_modules/
代替.git/
。
我的工作代码:
find -f ~/Sites . -name node_modules | grep -v 'node_modules/' | while read fname; do
touch $fname/.metadata_never_index
done
答案 1 :(得分:0)
使用
找到可以找到的最顶层的模块带标志的npm命令--depth
npm list --depth = 0
您还可以按如下方式创建别名:
alias ng="npm list -g --depth=0 2>/dev/null"
alias nl="npm list --depth=0 2>/dev/null"