Question

J'ai un problème avec celui-ci. Il me revient en permanence, pas un répertoire, mais est certainement

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

Une autre chose, je besoin d'un petit indice. Je dois la liste des fichiers d'un utilisateur donné dans un répertoire donné, où je reçois à la fois l'utilisateur et le répertoire en tant que paramètres. Juste des suggestions, s'il vous plaît.

Était-ce utile?

La solution

Êtes-vous dans le répertoire /home lorsque vous exécutez cela? Sinon, vous pouvez modifier à:

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

pour correspondre à la commande ls. Cela suppose que vous utilisez avec quelque chose comme myscript pax d'examiner le répertoire /home/pax, qui semble être le cas.

Et si vous voulez que la liste de ces fichiers là-bas appartenant à un utilisateur spécifique, vous pouvez utiliser awk seulement imprimer ceux avec la colonne 3 ensemble à la valeur souhaitée ($usrnm), quelque chose comme:

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

Autres conseils

Vous n'êtes pas tester l'existence du même répertoire que vous essayez de liste - vous -d "/home/$DIR" moyenne peut-être? Ou de vos besoins, avez-vous deux paramètres?

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

# and then examine "/home/$user/$dir"
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top