Sto provando a grep per le righe nel primo campo di un'uscita che sono maggiori di un numero specificato. In questo caso, quel numero è 755
. In definitiva, sto cercando di elencare tutti i file con privilegi maggiori di (e non uguali a) 755
usando stat -c '%a %n' *
e poi reindirizzare ad alcuni grep'ing (o eventualmente sed'ing?) Per ottenere questo elenco finale. Qualche idea su come questo possa essere realizzato al meglio?Linee di apertura per numeri maggiori del numero dato
risposta
provare questo:
stat -c '%a %n' *|awk '$1>755'
se si desidera solo il nome del file nel vostro output finale, saltare i numeri di privilegio, si potrebbe:
stat -c '%a %n' *|awk '$1>755{print $2}'
EDIT
in realtà si potrebbe fare il chmod
in awk. ma dovresti assicurarti che l'utente che esegue la linea di awk abbia il permesso di cambiare quei file.
stat -c '%a %n' *|awk '$1>755{system("chmod 755 "$2)}'
di nuovo, si supponga che il nome file non abbia spazi.
Oh grazie per quel piccolo add-on. Stavo per tagliare il campo 2, ma il tuo lo realizza in un tubo in meno! – user2150250
Attenzione ai nomi di file con spazi. –
@ user2150250 nota, il mio secondo awk one-liner presuppone che il nome file non abbia spazio. – Kent
userei awk(1)
:
stat -c '%a %n' * | awk '$1 > 755'
Il modello awk
corrisponde linee in cui il primo campo è maggiore di 755. Si potrebbe aggiungere un'azione se si desidera stampare un sottoinsieme di una linea o di qualcosa di diverso, troppo (vedi @ risposta di Kent).
Né grep
né sed
sono buoni in aritmetica. awk
potrebbe aiutare (purtroppo non lo so). Ma nota che find
può essere utile anche qui:
-perm mode
File's permission bits are exactly mode (octal or symbolic).
Since an exact match is required, if you want to use this form
for symbolic modes, you may have to specify a rather complex
mode string. For example -perm g=w will only match files which
have mode 0020 (that is, ones for which group write permission
is the only permission set). It is more likely that you will
want to use the `/' or `-' forms, for example -perm -g=w, which
matches any file with group write permission. See the EXAMPLES
section for some illustrative examples.
-perm -mode
All of the permission bits mode are set for the file. Symbolic
modes are accepted in this form, and this is usually the way in
which would want to use them. You must specify `u', `g' or `o'
if you use a symbolic mode. See the EXAMPLES section for some
illustrative examples.
-perm /mode
Any of the permission bits mode are set for the file. Symbolic
modes are accepted in this form. You must specify `u', `g' or
`o' if you use a symbolic mode. See the EXAMPLES section for
some illustrative examples. If no permission bits in mode are
set, this test matches any file (the idea here is to be consis‐
tent with the behaviour of -perm -000).
Così che cosa potrebbe funzionare per voi è:
find . -perm -755 -printf '%m %p\n'
è sufficiente rimuovere la parte -printf
se è necessario solo i nomi dei file.
- 1. Ricerca di k numeri più vicini ad un dato numero
- 2. Somma dei maggiori divisori dispari dei primi n numeri
- 3. Aggiunta del numero variabile di numeri
- 4. RegEx: come posso abbinare tutti i numeri maggiori di 49?
- 5. Ricerca di un numero primo dopo un dato numero
- 6. Linee di allineamento del codice?
- 7. Utilizzo del modello di modulo per progetti di dimensioni maggiori
- 8. python3 file di apertura e linee di lettura
- 9. Dato un array 2D di numeri, per cluster
- 10. Regex per numero minimo di 9 numeri
- 11. Creazione di un array di numeri che somma a un dato numero
- 12. Determina righe/colonne necessarie dato un numero
- 13. dalla lista di numeri interi, ottenere il numero più vicino ad un dato valore
- 14. conoscere un file speciale del dispositivo numeri maggiori e minori in linux
- 15. numero di linee in uscita terminale
- 16. Tronca un elenco per un dato numero di elementi
- 17. comando diff per ottenere solo il numero di linee diverse
- 18. diviso il testo in linee per il numero di caratteri
- 19. Come creare numeri casuali uniche da un dato generatore casuale
- 20. Trova tutti i modi per sommare il numero dato (con ripetizioni consentite) dal set dato
- 21. Modificare un dato numero per trovare la somma richiesta?
- 22. Trovare la data per un dato numero della settimana
- 23. Numero intero per byte con un numero dato di bit impostato
- 24. Dato un numero n, scopri quanti numeri hanno la cifra 2 nell'intervallo 0 ... n
- 25. Trova gli indici di elementi maggiori di x
- 26. Significato di # in Numero di numeri letterali
- 27. Numero di bit nei numeri di Javascript
- 28. Generazione di una matrice numpy con tutte le combinazioni di numeri che sommano a meno di un dato numero
- 29. Come rilevare se un dato numero è un numero intero?
- 30. Trova numero univoco tra 3n + 1 numeri
Poiché '755' è davvero un numero ottale che rappresenta una sequenza di bit, cosa significa esattamente" maggiore di "? '666' consente a tutti di accedere in scrittura; è "maggiore di" 755? '755'" maggiore di "' 666'? –
Utenti OS X: l'equivalente di 'stat -c '% a% n' *' (Linux) sembra essere 'stat -f '% Lp% N' *' – mklement0
la persona chiede grep, mentre le persone continuano a dare awk? – Soncire