전체 디렉토리 트리의 권한 / 소유자보기 / file”과 같은 것을

“XXX / home / user / dir / child / file”과 같은 것을 기억하고 소유자 및 / 또는 권한을 반환했습니다.

/home
/home/user
/home/user/dir
/home/user/child
/home/user/child/file

그러나 나는이 명령이 무엇인지 기억하지 못합니다. 아무도 모른다?



답변

명령은 다음과 같습니다.

namei -m /home/user/dir/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 -사용자 이름 / 사용자 ID
  • -f -전체 경로
  • -i -들여 쓰기 줄을 인쇄하지 마십시오
  • -d -인쇄 디렉토리 만

참고 문헌


답변

그것을 조금이라도 줘서 나는 이것을 생각해 냈다.

#!/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'

답변

상위 디렉토리의 권한과 소유자를 알고 싶은 디렉토리에서 :

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 / path / to / list

또한 숨겨진 파일 을 나열 하려면 -a (all) 옵션 을 추가하십시오 .

ls -al / path / to / list

또한 서브 디렉토리에 권한을 나열 하려면 -R (재귀) 옵션을 사용하십시오.

ls -Rl / path / to / list

첫 번째 열에는 권한 (read (r), write (w), execute (x)) 및 일부 특수 권한 (디렉토리 (d),-(일반 파일))이 표시되고 3 번째 및 4 번째 열에는 파일 / 디렉토리가 표시됩니다 소유자와 그룹.