cos'è un carattere jolly per selezionare tutte le directory in una directory


13

voglio impostare bit appiccicoso per tutte le directory in una directory esclusi i file. c'è qualche jolly per farlo?

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

Risposte:


24

Utilizzare */per abbinare solo le directory.

chmod g+s /var/www/*/

Per abbinare tutte le directory e le sottodirectory utilizzate **/*/(a condizione che tu abbia globstarabilitato in bash):

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

2
Funziona bene, ma si interromperà non appena la lunghezza della riga di comando estesa supera il limite di lunghezza della riga di comando. -> cyberciti.biz/faq/argument-list-too-long-error-solution
Bonsi Scott

1
si, ne sono ben consapevole. Tuttavia, l'OP ha richiesto un "carattere jolly".
dogbane,

si! ho chiesto il jolly, grazie.
Necktwi,

so che ha chiesto una soluzione jolly. Ho solo sottolineato che avrebbe fallito in qualche circostanza. A parte questo, nessuna critica da vedere qui (ho commentato ancora votato, perché è una soluzione funzionante per la maggior parte dei casi) ^^
Bonsi Scott

13

puoi usare trova, vedi esempio sotto

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

3
Questo è carino, ma non è un jolly, ma ha il vantaggio di non fallire a causa di molte directory
Bonsi Scott

Si noti che questo è ricorsivo per impostazione predefinita. Se si desidera applicare il comando solo al livello superiore, è possibile utilizzare l' -maxdepth findargomento.
Kris Harper,

0

Questo NON è un carattere jolly, quindi mi scuso per una non risposta, tuttavia ...
ls -al |grep ^d | awk '{print$NF}'elencherò tutte le directory nella directory corrente, spetta a te decidere se vuoi elaborarle .e ..rimuoverle.

echo $(ls -al |grep ^d | awk '{print$NF}') lo fa comportarsi come un jolly


Questo si interromperà se i tuoi file hanno spazi vuoti iniziali o finali o nuove righe.
Chris Down,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.