来自给定用户的bash脚本列表文件

时间:2010-11-07 14:37:07

标签: bash shell ls

我遇到这个问题。 它不断地归还我,而不是目录,但肯定是

#!/usr/local/bin/bash  
DIR=$1  
if [ -d "$DIR" ]; then  
        ls -1Apl /home/$DIR | grep -v /\$  
else  
        echo "not a directory"
fi

还有一件事,我需要一点提示。我必须列出给定目录中给定用户的文件,其中我将用户和目录作为参数。 请提出建议。

2 个答案:

答案 0 :(得分:1)

运行此文件时,您是否在/home目录中?如果没有,您可能希望将其更改为:

if [ -d "/home/$DIR" ]; then

匹配ls命令。这假设您使用类似myscript pax的方式运行它来检查/home/pax目录,这似乎就是这种情况。

如果您只想列出特定用户拥有的那些文件,您可以使用awk仅打印第3列设置为所需值($usrnm)的文件,类似于:

ls -1Apl /home/$DIR | grep -v /\$ | awk -v user=${usrnm} '$3==user{print}{}'

答案 1 :(得分:1)

您没有测试是否存在与您尝试列出的目录相同的目录 - 也许您的意思是-d "/home/$DIR"?或者根据您的要求,您有两个参数吗?

user="$1"
dir="$2"

# and then examine "/home/$user/$dir"