我正在寻找一个简单的命令,可以在 Bash 中使用它来查找 OS X 上文件的绝对和规范化路径(类似于 Linux 下的“readlink -f”)。
以下示例 bash 会话描述了一个名为“abspath”的 [虚构] 实用程序,它展示了所需的行为:
$ pwd
/Users/guyfleegman
$ ls -lR
drwxr-xr-x 4 guyfleegman crew 136 Oct 30 02:09 foo
./foo:
-rw-r--r-- 1 guyfleegman crew 0 Oct 30 02:07 bar.txt
lrwxr-xr-x 1 guyfleegman crew 7 Oct 30 02:09 baz.txt -> bar.txt
$ abspath .
/Users/guyfleegman
$ abspath foo
/Users/guyfleegman/foo
$ abspath ./foo/bar.txt
/Users/guyfleegman/foo/bar.txt
$ abspath foo/baz.txt
/Users/guyfleegman/foo/baz.txt
Run Code Online (Sandbox Code Playgroud)
与上面示例中最后一次调用“abspath”一样,我希望它不会自动解析符号链接,但我不会在这里太挑剔。
有时需要确定对路径中的哪个目录的访问权限受到限制。下面是一个例子:
$ ls /sys/kernel/debug/usb/devices
ls: cannot access /sys/kernel/debug/usb/devices: Permission denied
$ cat /sys/kernel/debug/usb/devices
cat: /sys/kernel/debug/usb/devices: Permission denied
Run Code Online (Sandbox Code Playgroud)
既不显示ls也不cat显示用户权限受限的地方。
显示路径中每个组件(目录和文件)的访问权限的最简单方法是什么?我主要对类 Unix 系统的解决方案感兴趣。