我正在尝试使用/etc/passwd
文件来列出系统中用户的主目录,排序并去重,使不存在的目录不会被打印出来。这是我的命令:
cut -f 6 -d ':' /etc/passwd | sort -su | ls -ld
它的作用就像是我从命令管道中根本没有带任何参数一样,只是运行了ls -ld
命令。
我正在尝试使用/etc/passwd
文件来列出系统中用户的主目录,排序并去重,使不存在的目录不会被打印出来。这是我的命令:
cut -f 6 -d ':' /etc/passwd | sort -su | ls -ld
它的作用就像是我从命令管道中根本没有带任何参数一样,只是运行了ls -ld
命令。
ls
命令无法接受管道输出。不过,您可以使用反引号来在一组目录上执行它:
ls `cut -f 6 -d ':' /etc/passwd | sort -su `
你不能将东西管道传输到ls
命令中。你可以尝试以下操作:
ls -ld $(cut -f 6 -d ':' /etc/passwd | sort -su)
你可以使用xargs
cut -f 6 -d ':' /etc/passwd | sort -su | xargs ls
你并不遥远,只需要在 ls 命令之前加上 xargs 就可以了:
cut -f 6 -d ':' /etc/passwd | sort -u | xargs ls -ld
ls -ld $("cut -f 6 -d ':' /etc/passwd | sort -su")
,但是Bash说它是一个未知命令,为什么? - user3105173$( )
,你应该直接传递命令 ;) - fredmaggiowski