|
| Shell-spørgsmål: Markering af et tegn Fra : Brian K. Larsen (DCE~ |
Dato : 13-12-01 09:36 |
|
Jeg er begyndt at tygge mig igennem en bog om Linux... jeg læser om shellen
i øjeblikket...
Jeg har lige et lille spm. mere om Linux:
Spm 1)
Hvis jeg f.eks. vil liste alle filer, som indeholder e, skriver jeg:
ls -l *e*
men det virker også hvis jeg skriver:
ls -l *e*
Jeg kiggede i
man ls
for at se hvad det er korrekt...
men det fik mig til at tæmke på:
Er der en korrekt rækkefølge - eller kan man i kommandoer bytte rundt på
parametre, som man vil ??
Er det en tilfældighed at begge kan bruges.. eller ???
Spm 2)
Til min store overraskelse så jeg at kommandoen
dir
også virker!!!
Er der forskel på "ls" og "dir" ???
--
mvh.
Brian K. Larsen
(DCE)
| |
Niels Andersen (13-12-2001)
| Kommentar Fra : Niels Andersen |
Dato : 13-12-01 09:54 |
|
"Brian K. Larsen (DCE)" <brian@brianbrianbrian.dk> wrote in message
news:OXZR7.7134$z4.950334@news000.worldonline.dk...
> Hvis jeg f.eks. vil liste alle filer, som indeholder e, skriver jeg:
> ls -l *e*
> men det virker også hvis jeg skriver:
> ls -l *e*
Jeg kan ikke se forskel, prøv lige igen... :)
--
Mvh.
Niels Andersen
| |
Anders Tjerke Hansen (14-12-2001)
| Kommentar Fra : Anders Tjerke Hansen |
Dato : 14-12-01 09:05 |
|
Hov, der var jeg lidt for hurtigt... sorry!
Jeg prøver lige igen:
Hvis jeg f.eks. vil liste alle filer, som indeholder e, skriver jeg:
ls *e* -l
men det virker også hvis jeg skriver:
ls -l *e*
Jeg kiggede i
man ls
for at se hvad det er korrekt...
men det fik mig til at tæmke på:
Er der en korrekt rækkefølge - eller kan man i kommandoer bytte rundt på
parametre, som man vil ??
Er det en tilfældighed at begge kan bruges.. eller ???
Med venlig hilsen
Anders Tjerke Hansen
| |
Niels Andersen (14-12-2001)
| Kommentar Fra : Niels Andersen |
Dato : 14-12-01 10:16 |
|
"Anders Tjerke Hansen" <nospam@nospam.no> wrote in message
news:tEiS7.3397$Q3.489233@news010.worldonline.dk...
Hej Anders og Brian (???)
> Jeg prøver lige igen:
>
> Hvis jeg f.eks. vil liste alle filer, som indeholder e, skriver jeg:
> ls *e* -l
> men det virker også hvis jeg skriver:
> ls -l *e*
Nogle gange er rækkefølgen ligegyldig, andre gange har den betydning.
Hvis der fx. står i manualen, at man kan specificere en fil sådan her:
-f filename
Så skal filnavnet komme efter "-f". Men måske kan man angive en input-fil og
en output-fil:
-i filename
og
-o filename
Så kan man (i hvert fald nogle gange) gøre sådan her:
program -io inputfil outputfil
Hvis rækkefølgen har betydning, tror jeg at det er nævn i dokumentationen.
Om ikke andet, så i hvert fald indirekte.
Se fx. xargs:
SYNOPSIS
xargs [-0prtx] [-e[eof-str]] [-i[replace-str]] [-l[max-
lines]] [-n max-args] [-s max-chars] [-P max-procs]
[--null] [--eof[=eof-str]] [--replace[=replace-str]]
[--max-lines[=max-lines]] [--interactive] [--max-
chars=max-chars] [--verbose] [--exit] [--max-procs=max-
procs] [--max-args=max-args] [--no-run-if-empty] [--ver-
sion] [--help] [command [initial-arguments]]
Når den finder noget, den mener er "command" (den anden-sidste parameter),
så er alt hvad der kommer derefter en del af "initial-arguments".
--
Mvh.
Niels Andersen
| |
Claus Rasmussen (14-12-2001)
| Kommentar Fra : Claus Rasmussen |
Dato : 14-12-01 11:00 |
|
Brian-Anders skrev...
> Hvis jeg f.eks. vil liste alle filer, som indeholder e, skriver jeg:
> ls *e* -l
> men det virker også hvis jeg skriver:
> ls -l *e*
[Det kan sgu' da ikke passe... taste,taste,taste... HVAD ??]
Jeg har gravet lidt rundt, og det ser ud til, at problemet skyldes
getopt funktionen (man 3 getopt), der som default accepterer options
overalt på kommandolinien.
Du kan undgå denne adfærd ved at sætte environment-variablen
POSIXLY_CORRECT - men det fører også en masse andet med sig, som du
nok ikke er interesseret i. En anden måde at undgå problemet på, er
at skille options og filnavne med "--". Altså: "ls -- *e* -l" .
Men jeg mener, at det er en (farlig) bug, at ls opfører sig på den
måde, så jeg ville nok sende en rapport til bug-fileutils@gnu.org .
Der er dog den mulighed, at GNU folkene mener, at det faktisk /skal/
være sådan. De har nogen gange en noget speciel opfattelse af tingene.
Denne hypotese styrkes af, at hvis man kigger sourcen igennem, så
har alle andre programer i den pakke, det drejer sig om (fileutils)
nøjagtig samme adfærd. Det drejer sig bla. om cp, mv, rm, chmod,
mkdir, rmdir osv.
-Claus
| |
Byrial Jensen (15-12-2001)
| Kommentar Fra : Byrial Jensen |
Dato : 15-12-01 12:09 |
|
Claus Rasmussen <clr@cc-consult.dk> skrev:
> Men jeg mener, at det er en (farlig) bug, at ls opfører sig på den
> måde, så jeg ville nok sende en rapport til bug-fileutils@gnu.org .
>
> Der er dog den mulighed, at GNU folkene mener, at det faktisk /skal/
> være sådan.
Det står ganske klart i manualen for ls i allerførste afsnit at det
er den ønskede virkemåde, så det burde ikke kunne overraske:
The `ls' program lists information about files (of any type,
including directories). Options and file arguments can be
intermixed arbitrarily, as usual.
| |
Claus Rasmussen (15-12-2001)
| Kommentar Fra : Claus Rasmussen |
Dato : 15-12-01 12:14 |
|
Byrial Jensen wrote:
> Det står ganske klart i manualen for ls i allerførste afsnit at det
> er den ønskede virkemåde, så det burde ikke kunne overraske:
>
> The `ls' program lists information about files (of any type,
> including directories). Options and file arguments can be
> intermixed arbitrarily, as usual.
Hrmpf. Så går det, når man ikke RTFM'er ordenligt
-Claus
| |
frank damgaard (13-12-2001)
| Kommentar Fra : frank damgaard |
Dato : 13-12-01 10:41 |
|
Brian K. Larsen (DCE) <brian@brianbrianbrian.dk> wrote:
> Spm 2)
> Til min store overraskelse så jeg at kommandoen
> dir
> også virker!!!
> Er der forskel på "ls" og "dir" ???
det kan være:
dir: aliased to ls -la
eller (info dir):
`dir': Briefly list directory contents
======================================
`dir' (also installed as `d') is equivalent to `ls -C -b'; that is,
by default files are listed in columns, sorted vertically, and special
characters are represented by backslash escape sequences.
*Note `ls': ls invocation.
Men det er blot en GNU "ls" der opfører sig på en bestemt måde
bår ls kaldes som dir.
--
Frank Damgaard |
| |
Byrial Jensen (15-12-2001)
| Kommentar Fra : Byrial Jensen |
Dato : 15-12-01 12:09 |
|
frank damgaard <frank.damgaard@spam.invalid> skrev:
>
> Men det er blot en GNU "ls" der opfører sig på en bestemt måde
> bår ls kaldes som dir.
Hvis jeg ikke husker forkert, er det et POSIX-krav at der skal
findes en dir-kommando.
| |
Anders Tjerke Hansen (14-12-2001)
| Kommentar Fra : Anders Tjerke Hansen |
Dato : 14-12-01 09:06 |
|
Hov, der var jeg lidt for hurtigt... sorry!
Jeg prøver lige igen:
Hvis jeg f.eks. vil liste alle filer, som indeholder e, skriver jeg:
ls *e* -l
men det virker også hvis jeg skriver:
ls -l *e*
Jeg kiggede i
man ls
for at se hvad det er korrekt...
men det fik mig til at tæmke på:
Er der en korrekt rækkefølge - eller kan man i kommandoer bytte rundt på
parametre, som man vil ??
Er det en tilfældighed at begge kan bruges.. eller ???
Med venlig hilsen
Anders Tjerke Hansen
| |
|
|