Sida 1 av 1

Konstig utskrift från "file"...

Postat: 14 okt 2008, 08:39
av Osprey
När jag kör kommandot "file" i en av mina mappar så får jag för en av filerna utskriften:
shell archive or script for antique kernel text
Vad ska betyder det och hur ska man egentligen tolka det? Filen ifråga är bara en skräpfil som resulterat av en ">" (omriktning av stdout) och jag kommer inte ihåg hur hela kommandot som skapade den såg ut. Vad innebär egentligen "script for antique kernel text"...??

Re: Konstig utskrift från "file"...

Postat: 15 okt 2008, 05:11
av David Andersson
Osprey skrev:När jag kör kommandot "file" i en av mina mappar så får jag för en av filerna utskriften:
shell archive or script for antique kernel text
Kommandot file använder filen /usr/share/file/magic som bekriver hur man gissar filtyp beroende på innehållet i en fil, oftast innehållet i början.
Där finns en regel för filtypen "shell archive or script for antique kernel text" (öppna magic och sök efter antique) som verkar vara att filen helt enkelt börjar med ett kolon. Om du tittar i din skräpfil så har den antagligen ett kolon i första positionen i första raden.

Kuriosa

En skillnad mellan Microsoft Windows och desktoppar i Unix är att den förra använder filnamnsuffix för att avgöra filtyp och därmed vilket program som ska användas när man dubbelklickar filen. Desktoppar i unix brukar analysera headern i filen för att avgöra filtyp, så du kan i princip ta bort alla .mp3, .mov och .jpg i dina filnamn och den (*) kommer fortfarande att visa rätt ikon och öppna med rätt program när du dubbelklickar. I Mac är det inte heller nödvändigt att ha filnamnsuffix. Om Mac OS X gör som i unix eller om den använder samma teknik som i gamla Mackar vet jag inte.

(*) I alla fall i cde och xfce

Re: Konstig utskrift från "file"...

Postat: 15 okt 2008, 09:52
av Osprey
Tack och jo precis, jag provade att skapa en fil som bara innehåller ett kolon och då får jag precis samma utskrift.

Men det jag egentligen var mest intresserad av var -vad är egentligen "script for antique kernel"..?

Ända sedan jag började med Unix SystemV i början av 80-talet har jag aldrig sett några (vanliga) script som börjar med kolon. Iofs är "början av 80-talet" sådär lite drygt 10 år efter Unix födelse, men ändå... :)

Re: Konstig utskrift från "file"...

Postat: 15 okt 2008, 10:31
av Lars

Re: Konstig utskrift från "file"...

Postat: 15 okt 2008, 10:44
av Osprey
Tackar, nu gick det upp ett ljus här... :D

Re: Konstig utskrift från "file"...

Postat: 15 okt 2008, 17:42
av Konservburk
Osprey skrev:Tack och jo precis, jag provade att skapa en fil som bara innehåller ett kolon och då får jag precis samma utskrift.

Men det jag egentligen var mest intresserad av var -vad är egentligen "script for antique kernel"..?

Ända sedan jag började med Unix SystemV i början av 80-talet har jag aldrig sett några (vanliga) script som börjar med kolon. Iofs är "början av 80-talet" sådär lite drygt 10 år efter Unix födelse, men ändå... :)
Du har redan fått svar på frågan... dvs det är från tiden innan #! fanns, när b.la. csh antog att filer som började med # var chs-skript, medan filer som började med : var bourne-skript. Kommentarer börar med # i csh, men innan bourne sh fick möjlighet till riktiga kommentarer så brukade man använda sig av :-kommandot istället.

Nu till kuriosa-biten...

:-kommandot, även kännt som place a label, är ett gammalt unix-kommando från långt innan bourne sh fanns. När man införde det gamla (numera försvunna) goto-kommandot så behövde man ett sätt att placera ut labels i sina skript som goto sedan kunde hoppa till. Man införde då :-kommandot som tar vilka argument som helst utan att det blir några syntax-fel. Att : sedan kom att användas som en slags ersättning för riktiga kommentarer var nog inte alls vad man hade tänkt sig från början.

Re: Konstig utskrift från "file"...

Postat: 15 okt 2008, 17:49
av Eldräven
Konservburk skrev:När man införde det gamla (numera försvunna) goto-kommandot så behövde man ett sätt att placera ut labels i sina skript som goto sedan kunde hoppa till.
Funkar fortfarande så i Windows kommandoprompt...

Tack för kul kuriosa! ;D

Re: Konstig utskrift från "file"...

Postat: 15 okt 2008, 18:47
av Osprey
Konservburk skrev:När man införde det gamla (numera försvunna) goto-kommandot så behövde man ett sätt att placera ut labels i sina skript som goto sedan kunde hoppa till.
Var tvungen att kolla och jodå:

Kod: Markera allt

#! /bin/csh
100:
	echo "Hello world"
goto 100
Csh håller ställningarna... ;D ;D