що таке підказка, щоб вибрати всі каталоги в каталозі


13

Я хочу встановити клейкий біт для всіх каталогів у каталозі, крім файлів. чи є якась підказка для цього?

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

Відповіді:


24

Використовуйте */для узгодження лише каталогів.

chmod g+s /var/www/*/

Щоб відповідати всім каталогам і підкаталогам, які використовуються **/*/(за умови, що ви globstarввімкнули bash):

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

2
Працює добре, але перерветься, як тільки розширена довжина командного рядка перевищить межу довжини командного рядка. -> cyberciti.biz/faq/argument-list-too-long-error-solution
Бонсі Скотт

1
так, я це добре знаю. Однак, ОП попросили "підстановку".
собачка

так! я попросив підстановку, спасибо.
Necktwi

я знаю, що він попросив підстановку-рішення. Я лише зазначив, що за певних обставин це не вдасться. Інше, що це, жоден критик не бачити тут (я # ve коментував ще не схвалений, тому що це робоче рішення для більшості випадків) ^^
Бонсі Скотт

13

ви можете скористатися знахідкою, див. приклад нижче

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

3
Це приємно, але не є
мальовничою карткою

Зауважте, що це за замовчуванням рекурсивна. Якщо ви хочете, щоб ваша команда застосовувалася до верхнього рівня, ви можете використовувати -maxdepth findаргумент.
Кріс Харпер

0

Це НЕ макіяж, тому я прошу вибачення за невідповідь, однак ...
ls -al |grep ^d | awk '{print$NF}'перерахує всі каталоги в поточному редакторі, вирішувати, чи хочете ви їх обробляти .та ..чи знімати.

echo $(ls -al |grep ^d | awk '{print$NF}') робить змушує себе поводитись як підстановка


Це порушиться, якщо у ваших файлах є провідна або відстала пробіли або нові рядки.
Кріс Даун
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.