我正在尝试使用/etc/passwd
文件列出系统中用户的主目录,已排序且无需重复,以便不会打印不存在的目录。
这是我的命令:
cut -f 6 -d ':' /etc/passwd | sort -su | ls -ld
就好像我只是在命令管道中没有参数的情况下运行ls -ld
。
答案 0 :(得分:4)
ls
不接受管道输出。但是,您可以使用前向引号在目录列表中执行它:
ls `cut -f 6 -d ':' /etc/passwd | sort -su `
答案 1 :(得分:4)
您无法将内容传递到ls
..您可以执行以下操作:
ls -ld $(cut -f 6 -d ':' /etc/passwd | sort -su)
通过生成一个新的bash来执行cut | sort
并将其作为ls
参数传递
答案 2 :(得分:2)
您可以使用xargs
cut -f 6 -d ':' /etc/passwd | sort -su | xargs ls
答案 3 :(得分:2)
你并不遥远,只需在ls:
之前添加一个xargscut -f 6 -d ':' /etc/passwd | sort -u | xargs ls -ld