Bir dizindeki tüm dizinleri seçmek için joker karakter nedir


13

i dosyaları hariç bir dizindeki tüm dizinler için yapışkan bit ayarlamak istiyorum. bunu yapmak için herhangi bir joker var mı?

#sudo chmod g+s /var/www/<WILD_CARD_FOR_ALL_DIRECTORIES>

Yanıtlar:


24

*/Yalnızca dizinleri eşleştirmek için kullanın .

chmod g+s /var/www/*/

Tüm dizinleri ve alt dizinleri eşleştirmek için şunu kullanın **/*/( globstarbash'da etkinleştirdiyseniz):

shopt -s globstar
chmod g+s /var/www/**/*/

2
İyi çalışır, ancak genişletilmiş komut satırı uzunluğu komut satırı uzunluk sınırını aşar aşmaz. -> cyberciti.biz/faq/argument-list-too-long-error-solution
Bonsi Scott

1
evet, bunun farkındayım. Ancak, OP bir "joker" istedi.
dogbane

Evet! joker, thanq istedi.
Necktwi

bir joker çözüm istediğini biliyorum. Sadece bazı durumlarda başarısız olacağını belirttim. Diğer, burada görmek için hiçbir eleştiri (ben # henüz yorumladı, çünkü çoğu durumda için bir çalışma çözümü) ^^
Bonsi Scott

13

find komutunu kullanabilirsiniz, aşağıdaki örneğe bakın

find /var/www/ -type d -exec chmod g+s {} \;

3
Bu güzel, ama henüz bir joker değil - ama pek çok dizin nedeniyle başarısız değil avantajı vardır
Bonsi Scott

Bunun varsayılan olarak özyinelemeli olduğunu unutmayın. Komutunuzun yalnızca en üst düzeye uygulanmasını istiyorsanız, -maxdepth findargümanı kullanabilirsiniz .
Kris Harper

0

Bu benim olmayan bir cevap için özür kadar ki ..., bir joker DEĞİLDİR
ls -al |grep ^d | awk '{print$NF}'simdiki tüm dizinleri listeler, bu sürecin istiyorsanız karar vermek size kalmış .ve ..ya bunları soyun.

echo $(ls -al |grep ^d | awk '{print$NF}') joker gibi davranmasını sağlar


Dosyalarınızda öncü veya sondaki boşluk veya satırsonu varsa bu durum bozulur.
Chris Down
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.