bash liste des fichiers de script utilisateur donné
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.
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"