パスのアクセス権の一覧表示

パスのアクセス権の一覧表示

パスにアクセス権を一覧表示するためのより良い方法(繰り返し置換の防止)はありますか?

echo "/asdf/asd/asdas/asdasd/asdasd/asdwer" | sed -Ee 's#((.*)/.*)#\1\n\2#' \
-e 's#((.*)/.*)#\1\n\2#' -e 's#((.*)/.*)#\1\n\2#' -e 's#((.*)/.*)#\1\n\2#' -e 's#((.*)/.*)#\1\n\2#' -e 's#((.*)/.*)#\1\n\2#' -e 's#((.*)/.*)#\1\n\2#' -e 's#((.*)/.*)#\1\n\2#' -e 's#((.*)/.*)#\1\n\2#' -e 's#((.*)/.*)#\1\n\2#' \
-e 's#((.*)/.*)#\1\n\2#' | sort -u | xargs ls -dl

答え1

小さなシェルループがこれを行うことができます:

p=/var/log/messages
while [ $p != "/" ]; do ls -ld "$p"; p=$(dirname "$p"); done; ls -ld "$p"

出力例:

-rw-------.  1 root root 241859 Apr 10 09:23 /var/log/messages
drwxr-xr-x. 14 root root   4096 Apr 10 03:32 /var/log
drwxr-xr-x. 26 root root   4096 Dec 13 16:10 /var
dr-xr-xr-x. 30 root root   4096 Dec 13 16:10 /

関連情報