Czy podczas wyświetlania katalogu można wyświetlić numeryczne uprawnienia uniksowe, takie jak 644, zamiast symbolicznego wyjścia -rw-rw-r--
Dzięki.
unix
command-line
permissions
Jon Winstanley
źródło
źródło
alias cls="ls -l | awk '{k=0;for(i=0;i<=8;i++)k+=((substr(\$1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf(\"%0o \",k);print}'"
chmod 777 dir
twoim poleceniu wypisuje uprawnienia jako767
Najbliższe, o czym mogę myśleć (upraszczając to dość prosto)
stat
, zakładając, że wiesz, których plików szukasz. Jeśli nie,*
możesz znaleźć większość z nich:Po wyjęciu z pudełka radzi sobie z klejem, suidem i towarzystwem:
źródło
stat -f '%A %N' *
robi to samo na komputerze Mac (FreeBSD)stat
nie jest,ls
dlatego nie jest to poprawna odpowiedź. Uważam jednak, że jest to poprawna odpowiedź w kontekście pożądanych wyników. Jeśliawk
jest dozwolone w potoku, tofind
powinno być dozwolone tam, gdziestat
jest wywoływane-exec
; wtedy możesz używaćstat
bezpośrednio bez*
stat -c '%a %n' * **/*
.możesz po prostu użyć GNU find.
źródło
-maxdepth 1
opcję, w przeciwnym razie przejdzie przez całe drzewo katalogów.Możesz użyć następującego polecenia
Możesz także użyć dowolnego
filename
lubdirectoryname
zamiast,*
aby uzyskać określony wynik.Na komputerze Mac możesz użyć
źródło
stat: illegal option -- c
usage: stat [-FlLnqrsx] [-f format] [-t timefmt] [file ...]
man stat
systemie macOS 10.14.4, polecenie powinno byćstat -f "%Lp %N" *
.%Lp
wydaje się drukować to samo co%A
.@ MYYN
wow, niezły awk! Ale co z sidid, sgid i lepki kawałek?
Musisz rozszerzyć filtr za pomocą s i t, w przeciwnym razie nie będą się one liczyć i otrzymasz zły wynik. Aby obliczyć liczbę ósemkową dla tych specjalnych flag, procedura jest taka sama, ale indeks wynosi 4 7 i 10. Możliwe flagi dla plików z ustawionym
---s--s--t
zestawem bitów są następujące:---S--S--T
Dla testu:
spowoduje:
i
da:
źródło
alias "lsmod=ls -al|awk '{k=0;s=0;for(i=0;i<=8;i++){;k+=((substr(\$1,i+2,1)~/[rwxst]/)*2^(8-i));};j=4;for(i=4;i<=10;i+=3){;s+=((substr(\$1,i,1)~/[stST]/)*j);j/=2;};if(k){;printf(\"%0o%0o \",s,k);};print;}'"
Służy do wyświetlania numerycznych wartości uprawnień (wartości ósemkowe) i nazwy pliku.
Służy do wyświetlania numerycznych wartości uprawnień uniksowych (wartości ósemkowe) oraz sgid i lepki folder folderu, nazwę użytkownika właściciela, nazwę grupy, całkowity rozmiar w bajtach i nazwę pliku.
Dodaj,
%y
jeśli potrzebujesz czasu ostatniej modyfikacji w formacie czytelnym dla człowieka. Aby uzyskać więcej opcji, zobacz stat .Lepsza wersja przy użyciu aliasu
Korzystanie z aliasu jest bardziej wydajnym sposobem na osiągnięcie tego, czego potrzebujesz, i obejmuje również kolor. Poniżej przedstawiono wyniki uporządkowane najpierw według katalogów grup, wyświetlane w kolorze, rozmiary wydruków w formacie czytelnym dla człowieka (np. 1K 234M 2G), edytuj
~/.bashrc
i dodaj alias do swojego konta lub globalnie, edytując/etc/profile.d/custom.sh
Wpisanie
cls
wyświetla wyniki nowego polecenia LS.Drzewo folderów
Podczas edytowania pliku bashrc lub custom.sh dołącz następujący alias, aby wyświetlić graficzną reprezentację, w której wpisanie
lstree
wyświetli bieżącą strukturę drzewa folderówWyświetli się:
źródło
Nie używasz ls do uzyskania informacji o uprawnieniach do pliku. Używasz polecenia stat. Otrzymasz pożądane wartości liczbowe. „Sposób uniksowy” mówi, że powinieneś wymyślić swój własny skrypt, używając ls (lub „echo *”) i stat oraz cokolwiek innego, co chcesz podać w żądanym formacie.
źródło
Opierając się na wybranej odpowiedzi i sugestii użycia aliasu , przekonwertowałem ją na funkcję, aby możliwe było przekazanie katalogu do listy.
źródło