今天处理一个suse上的问题时,问同事他在那个系统上的用户的主目录在哪里,他搞了半天不知道,原因是这个用户是先前某个人创建的。
本来我想让他自己直接在/etc/passwd文件中找的,考虑到那个系统里有多人在用,找起来没那么方便,于是写了下面的shell代码:
本来,如果用户当前的shell是bash,直接cd ~就到主目录了,不过其它shell下不一定能识别出来~的含义。所以上面那条组合的shell 命令就比较管用了。
解释:
先把passwd文件打印出来,内容通过管道重定向到 grep查找出其中包含了当前的操作者用户名的行,然后在把这些行重定向到awk,通过awk打印出以冒号分隔开的数据的第6列的值(第6列就是主目录了)。