Ubuntu使用管道组合一个命令,实现显示当前目录下其文件拥有者具有读和写权限和普通文件的文件名
时间: 2024-09-18 12:15:14 浏览: 38
在Ubuntu系统中,你可以使用`find`命令结合`ls`和`test`(也称为`[ -rw- ]`)命令通过管道(`|`)来实现这个需求。这里是一个简单的步骤:
首先,运行`find`命令,查找当前目录(`.`)下的所有文件(包括目录),并指定仅列出权限包含读(`r`)和写(`w`)权限的文件:
```sh
find . -type f -perm /u+x,g+x
```
这里的`-type f`表示只查找文件,而不是目录;`-perm /u+x,g+x`则意味着检查用户(u)和组(g)都有读写权限(x)。
然后,将`find`的结果通过`ls`命令过滤出文件名,但使用`-l`选项获取每个文件的详细信息,包括权限部分:
```sh
find . -type f -perm /u+x,g+x -exec ls -ld {} \;
```
`-exec ls -ld {} \;`这部分会对每个找到的文件执行`ls -ld`,展示文件的长度、链接数、用户、组、权限、大小以及时间戳。
如果你想直接看到只有读写权限的文件名,可以去掉`ls`命令,只剩`find`:
```sh
find . -type f \( -perm /u+x,g+x -o -perm /u+w,g+w \) -print
```
这里我们添加了另一个条件`-perm /u+w,g+w`,以便同时检查有读和写权限的文件。
阅读全文