Я пам'ятаю, що робив щось на зразок "XXX / home / user / dir / child / file", і він повертав власнику та / або дозвіл:
/home
/home/user
/home/user/dir
/home/user/child
/home/user/child/file
Але я не пам'ятаю, що це за команда. У когось ідея?
Я пам'ятаю, що робив щось на зразок "XXX / home / user / dir / child / file", і він повертав власнику та / або дозвіл:
/home
/home/user
/home/user/dir
/home/user/child
/home/user/child/file
Але я не пам'ятаю, що це за команда. У когось ідея?
Відповіді:
Я думаю, ти можеш думати про tree
команду. Наприклад:
$ tree -pufid apps/glassfish3/ | less
apps/glassfish3
[drwxr-xr-x saml ] apps/glassfish3/bin
[drwxr-xr-x saml ] apps/glassfish3/glassfish
[drwxr-xr-x saml ] apps/glassfish3/glassfish/bin
[drwxr-xr-x saml ] apps/glassfish3/glassfish/config
[drwxr-xr-x saml ] apps/glassfish3/glassfish/docs
[drwxr-xr-x saml ] apps/glassfish3/glassfish/docs/api
[drwxr-xr-x saml ] apps/glassfish3/glassfish/docs/api/doc-files
[drwxr-xr-x saml ] apps/glassfish3/glassfish/docs/api/javax
[drwxr-xr-x saml ] apps/glassfish3/glassfish/docs/api/javax/annotation
[drwxr-xr-x saml ] apps/glassfish3/glassfish/docs/api/javax/annotation/security
[drwxr-xr-x saml ] apps/glassfish3/glassfish/docs/api/javax/annotation/sql
[drwxr-xr-x saml ] apps/glassfish3/glassfish/docs/api/javax/decorator
[drwxr-xr-x saml ] apps/glassfish3/glassfish/docs/api/javax/ejb
[drwxr-xr-x saml ] apps/glassfish3/glassfish/docs/api/javax/ejb/embeddable
...
...
Наведені вище перемикачі виконують наступне:
-p
- дозволи-u
- ім’я користувача / userid-f
- повний шлях-i
- не друкувати рядки відступу-d
- друкувати лише каталоги/home/user/dir/child/file
не дітей.
-u
справді потрібно? Здається, тут за замовчуванням (дерево вер. 1.6.0 під GNU bash 4.2.45). Чи є можливість замовкнути "ім'я користувача / userid"?
Після того, як дав це кілька тисяч, я придумав це
#!/bin/sh
l_path=$1
while [ "$l_path" != / -a "$l_path" != . ]; do
ls -ld $l_path
l_path=$(dirname -- "$l_path")
done
Вихід виглядає приблизно так
-rw------- 1 tant tant 181016423 Jun 25 23:49:17 2013 /home/tant/test_file
drwxr-xr-x 85 tant tant 5632 Jul 9 19:40:11 2013 /home/tant
lrwxr-xr-x 1 root wheel 8 Sep 4 23:53:27 2012 /home -> usr/home
Я сподіваюся, що це нормально, що це в зворотному порядку.
На основі коментарів, ось спосіб перерахувати від кореня вниз:
#!/bin/sh
l_path=$1
while [ "$l_path" != / -a "$l_path" != . ]; do
ls -ld $l_path
l_path=$(dirname -- "$l_path")
done | sed '1!G;h;$!d'
| tac
якщо у вас є, чи | sed '1!G;h;$!d'
ні.
У довіднику, який ви хочете дізнатись дозволи та власники астерів:
for i in $(seq 0 $(pwd | tr -cd / | wc -c)) ; do pwd ; ls -lad ; cd .. ; done
Зауважте, що після цього ви прийдете /
:), якщо ви хочете повернутися туди, де ви були, загорніть команду всередину
HERE=$(pwd)
...
cd ${HERE}
Команда, яку ви шукаєте для переліку дозволів та власників / груп, - ls -l .
-l варіант використовується для формату довгого списку.
ls -l / шлях / до / списку
Крім того, якщо ви хочете перерахувати та приховані файли, тоді додайте параметр -a (all) .
ls -al / шлях / до / списку
Крім того, якщо ви хочете перерахувати дозволи у ваших підкаталогах, використовуйте параметр -R (рекурсивний) .
ls -Rl / шлях / до / списку
У першому стовпці відображаються дозволи (read (r), write (w), Execute (x)) та деякі спеціальні дозволи (каталоги (d), - (звичайний файл)), а 3-й та 4-й стовпці показують вам файл / каталог власник і група відповідно.
apropos mode
абоapropos permissions
на OS X і Debian. Чи знаєте ви, яку платформу / дистрибуцію ви використовували? Можливо, це була команда для місцевих сайтів? Ви можете скриптувати такий інструмент, використовуючиdirname
таstat
.