2013-02-13 12 views
11

Questo deve essere veramente semplice da fare ma è stato completamente vuoto. Posso vedere il permesso di file utilizzando ls -la che può dare qualcosa di simile:UNIX/Linux/Mac OSX ottiene l'autorizzazione del file come numero

-rwxr-xr-x 1 james staff 68 8 Feb 13:33 basic.sh* 
-rw-r--r-- 1 james staff 68 8 Feb 13:33 otherFile.sh* 

Come traduco che in un numero per l'uso con chmod come chmod 755 otherFile.sh (con fuori facendo la conversione manuale).

+1

Solo una nota che potrebbe semplificare la ricerca: Mac OS X è BSD UNIX e anche qualsiasi metodo UNIX di risoluzione del problema. (Come molti altri modi Linux.) – Jesper

+0

Questo è un ottimo consiglio, grazie a @Jesper. – AJP

risposta

18

stat -f "%Lp" [filename] funziona per me in OS X 10.8.

+0

Non funziona su 10.7.5 – AJP

+0

Strana, la pagina man di 'stat' in 10.7 fa sembrare che quelle opzioni dovrebbero funzionare come fanno in 10.8. Che errore stai ottenendo? –

+1

Hmmm, è strano, ho pensato che la tua risposta fosse qualcosa del tipo: 'stat -c"% a% w "[nomefile]' che non funziona. La tua risposta funziona però. – AJP

1

Dovresti essere in grado di utilizzare il comando stat anziché ls. Guardando la manpage, questo dovrebbe lavorare per ottenere i permessi dei file:

for f in dir/* 
do 
    perms=$(stat -f '0%Hp%Mp%Lp' $f) 
    echo "$f has permissions $perms" 
done 

(anche se non sono al mio Mac al momento e quindi non posso provarlo).

+0

@ AJP, da ulteriori studi sulla manpage, penso che sia necessario specificare Hp, Mp e Lp per ottenere tutte le autorizzazioni di file. Si prega di consultare la mia modifica. – trojanfoe

+0

sì, la mia modifica era solo per mostrare che volevo solo la parte '755' in modo che potessi usarla con chmod per cambiare i permessi di lettura, scrittura ed esecuzione. Ma la tua risposta fornisce le autorizzazioni complete. – AJP

+0

@AJP Non capisco come entrambe le risposte potrebbero essere corrette. Stai dicendo che 'stat -f '% Hp% Mp% Lp'' ** e **' stat -f'% Lp'' danno risultati identici? – trojanfoe