如何对目录模式的存在进行内联测试?
如果存在目录模式,那么我想chmod该模式。
e.g。我正在尝试执行以下操作:
[ -d /usr/local/myproject/*/bin ] && chmod +x /usr/local/myproject/*/bin/*
但是这给了我错误“-bash:[:太多的参数”。
答案 0 :(得分:5)
没有必要测试:
chmod +x /usr/local/myproject/*/bin/* 2>/dev/null
答案 1 :(得分:2)
它不起作用,因为-d
测试需要一个参数。你似乎传递了不止一个。修复将是:
for dir in /usr/local/myproject/*/bin; do
[[ -d $dir ]] && chmod +x $dir/*
done
答案 2 :(得分:1)
为了从我的答案中挽救一些有用的东西,假设你有太多的bin目录,你不能这样做yi_H的方式。
find /usr/local/myproject/ -path '/usr/local/myproject/*/bin' -maxdepth 2 -type d -exec chmod a+x {} + 2>/dev/null