Bash-Skript Liste von Dateien aus bestimmten Benutzern
Frage
habe ich ein Problem mit diesem. Es wird mich immer wieder zurückkehrt, kein Verzeichnis, sondern ist sicherlich
#!/usr/local/bin/bash
DIR=$1
if [ -d "$DIR" ]; then
ls -1Apl /home/$DIR | grep -v /\$
else
echo "not a directory"
fi
Eine weitere Sache, ich brauche einen kleinen Hinweis. Ich muß die Liste von Dateien von einem bestimmten Benutzer in einem bestimmten Verzeichnis, wo ich sowohl für den Benutzer und das Verzeichnis als Parameter erhalten. Nur Vorschläge, bitte.
Lösung
Sind Sie im /home
Verzeichnis, wenn Sie das ausführen? Wenn nicht, sollten Sie es ändern zu:
if [ -d "/home/$DIR" ]; then
den ls
Befehl entsprechen. Dies wird vorausgesetzt, Sie es mit so etwas wie myscript pax
laufen das /home/pax
Verzeichnis zu prüfen, was der Fall zu sein scheint.
Und wenn Sie nur wollen, um diese Dateien auflisten dort von einem bestimmten Benutzer gehören, können Sie awk
verwenden, um nur die mit Spalte 3 Satz auf den gewünschten Wert ($usrnm
) zu drucken, so etwas wie:
ls -1Apl /home/$DIR | grep -v /\$ | awk -v user=${usrnm} '$3==user{print}{}'
Andere Tipps
Sie testen nicht für die Existenz des gleichen Verzeichnis wie Sie zur Liste sind versuchen - vielleicht haben Sie mittlere -d "/home/$DIR"
? Oder von Ihrer Anforderung, haben Sie zwei Parameter haben?
user="$1"
dir="$2"
# and then examine "/home/$user/$dir"