![什么是通配符来选择目录中的所有目录](https://linux22.com/image/44441/%E4%BB%80%E4%B9%88%E6%98%AF%E9%80%9A%E9%85%8D%E7%AC%A6%E6%9D%A5%E9%80%89%E6%8B%A9%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%E6%89%80%E6%9C%89%E7%9B%AE%E5%BD%95.png)
我想为目录中不包括文件的所有目录设置粘滞位。有什么通配符可以做到这一点吗?
#sudo chmod g+s /var/www/<WILD_CARD_FOR_ALL_DIRECTORIES>
答案1
用于*/
仅匹配目录。
chmod g+s /var/www/*/
要匹配所有目录和子目录,请使用**/*/
(前提是您已globstar
在 bash 中启用):
shopt -s globstar
chmod g+s /var/www/**/*/
答案2
您可以使用 find ,请参阅下面的示例
find /var/www/ -type d -exec chmod g+s {} \;
答案3
这不是通配符,所以我对没有回答表示歉意,但是...
ls -al |grep ^d | awk '{print$NF}'
将列出当前目录中的所有目录,由您决定是否要处理.
和..
/或删除它们。
echo $(ls -al |grep ^d | awk '{print$NF}')
确实使它表现得像通配符