wie kann ich diesen Befehl umschreiben, das der fehler was im Thread Titel steht nicht mehr auftritt
Code: Alles auswählen
ls -lG | awk '{k=0;for(i=0;i<=8;i++)k+=((substr(\$1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf(\" %0o \",k);print}
Code: Alles auswählen
ls -lG | awk '{k=0;for(i=0;i<=8;i++)k+=((substr(\$1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf(\" %0o \",k);print}
Code: Alles auswählen
ls -lG | awk "{k=0;for(i=0;i<=8;i++)k+=((substr(\$1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf(\" %0o \",k);print}"
Code: Alles auswählen
awk: read error (Is a directory)
Code: Alles auswählen
ls -lG | awk "
{
k = 0
for (i=0; i<=8; i++) {
k += (substr(\$1, i+2, 1) ~ /[rwx]/) * 2 ^ (8-i)
}
if (k) {
printf(\" %0o \", k)
}
print
}
"
Bei mir auch nicht, ich bekomme den Fehler hier nicht reproduziert.
Code: Alles auswählen
find -maxdepth 1 -printf ' %m ' -ls
Code: Alles auswählen
mawk 1.3.3-17+b3
Code: Alles auswählen
alias lso='ls -lG | awk "
{
k = 0
for (i=0; i<=8; i++) {
k += (substr(\$1, i+2, 1) ~ /[rwx]/) * 2 ^ (8-i)
}
if (k) {
printf(\" %0o \", k)
}
print
}
"
'
alias ri='find -maxdepth 1 -printf %m -ls'
Code: Alles auswählen
(root)-(~)->ri .ssh/
find: Der Pfad muss vor dem Ausdruck stehen: .ssh/
Try 'find --help' for more information.
(root)-(~)->lso .ssh/
insgesamt 8
644 -rw-r--r-- 1 root 1320 Dez 5 2002 jcameron-key.asc
644 -rw-r--r-- 1 root 101 Nov 20 20:57 zu_entfernende_Kernel
-bash: .ssh/: Ist ein Verzeichnis
Zeigst Du bitte auch, wie Du den Befehl aufgerufen hast?TMTYD hat geschrieben:04.12.2017 04:10:16Danke erstmal, aber es kommt genau der gleiche Fehler.
Code: Alles auswählen
awk: read error (Is a directory)
Code: Alles auswählen
ls -lG | awk '{k=0;for(i=0;i<=8;i++)k+=((substr(\$1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf(\" %0o \",k);print} /var/
Es fehlt noch immer das abschliessende Single-Quote.TMTYD hat geschrieben:07.12.2017 20:08:17ja genau das habe ich auch, den ich wollte die oktal rechte von den dateien im Ordner sehen
so habe ich den befehl eingegebenCode: Alles auswählen
ls -lG | awk '{k=0;for(i=0;i<=8;i++)k+=((substr(\$1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf(\" %0o \",k);print} /var/
Code: Alles auswählen
ls -lG /var | awk '...'
Stimmt.Phineas hat geschrieben:07.12.2017 23:03:04Der awk-code ist derart “geescaped“, dass doppelte Anführungszeichen nötig sind.
So geschrieben könnte ich mich fast mit shell-Syntax anfreunden.Meillo hat geschrieben:Code: Alles auswählen
ls -lG | awk " { k = 0 for (i=0; i<=8; i++) { k += (substr(\$1, i+2, 1) ~ /[rwx]/) * 2 ^ (8-i) } if (k) { printf(\" %0o \", k) } print } "
Code: Alles auswählen
lso () { find $1 -maxdepth 1 -printf ' %m ' -ls; }
Ich wuerde auch eine Funktion nehmen.Phineas hat geschrieben:08.12.2017 15:07:45Du kannst eine Funktion anstelle Alias definieren:Code: Alles auswählen
lso () { find $1 -maxdepth 1 -printf ' %m ' -ls; }
Code: Alles auswählen
lso() {
[ "$#" -eq 0 ] && set .
for i in "$@"; do
find "$i" -maxdepth 1 -printf ' %m ' -ls
done
}
Code: Alles auswählen
function lso() '{
[ "$#" -eq 0 ] && set .
for i in "$@"; do
find "$i" -maxdepth 1 -printf %m -ls
done
}
'
Code: Alles auswählen
-bash: .bash_aliases: Zeile 74: Syntaxfehler beim unerwarteten Wort `$'\'{\n\t[ "$#" -eq 0 ] && set .\n\tfor i in "$@"; do\n\t\tfind "$i" -maxdepth 1 -printf %m -ls\n\tdone\n}\n\'''
-bash: .bash_aliases: Zeile 74: `''