你如何做一个内联testing目录模式的存在?
如果目录模式存在,那么我想chmod该模式。
例如我试图做到以下几点:
[ -d /usr/local/myproject/*/bin ] && chmod +x /usr/local/myproject/*/bin/*
但是这给了我错误“-bash:[:too many arguments”。
没有必要测试:
chmod +x /usr/local/myproject/*/bin/* 2>/dev/null
它不起作用,因为-d
测试需要一个参数。 你似乎正在超过一个。 解决方法是:
for dir in /usr/local/myproject/*/bin; do [[ -d $dir ]] && chmod +x $dir/* done
为了挽回我的答案中的一些用处,假设你有太多的bin目录,你不能这样做。
find /usr/local/myproject/ -path '/usr/local/myproject/*/bin' -maxdepth 2 -type d -exec chmod a+x {} + 2>/dev/null