» »

ukazno programiranje

ukazno programiranje

xtrEeme ::

Pišem ukazni programček (skripto za ukazno lupino bash) ki naj bi izpisal vse zbirke določenega kazala, ki so večje kot n zlogov. Program mora prejet 2 argumenta, prvi pove preiskovano kazalo in drugi, s katerim povemo minimalno velikost izpisanih zbirk.
program potem izpiše vse tiste zbirke ki so večje kot n.
nekako približno imam v glavi zamišljeno vendar nevem kako se naj lotim tega. če lahko kdo pove kaken uporaben nasvet za začetek bi bil hvaležen.
lp

Jean-Paul ::

Predvidevam, da s kazalom ciljaš na direktorij, z zbirko pa na datoteko.

To nalogo lahko rešiš na n-načinov (pri čemer je n poljubno naravno število). Za začetek si poglej ukaz find.

xtrEeme ::

tako. kazalo je direktorij, zbirka pa datoteka.

BigWhale ::

find (pot) -type f -size +(velikost)c

torej

find /home -type f -size +10M za izpis vse datotek vecjih od 10MB

A to si hotel?

Zgodovina sprememb…

  • spremenil: BigWhale ()

xtrEeme ::

Ja to je v glavnem to. ampak program je treba napisat tako da prejme 2 argumenta in sicer je prvi argument "pot" drugi argument pa "velikost". to mi ni jasno kako spravit v kodo.
primer: v konzoli poženem program :

bash vecjeod10kb.sh /home/desktop 10kb
(/home/desktop je prvi argument , 10kb pa drugi)

in potem izpiše vse datoteke v direktoriju /home/desktop ki so večje od 10kb
lp

Zgodovina sprememb…

  • spremenil: xtrEeme ()

Kami ::

find $1 -type f -size +$2

xtrEeme ::

Hvala Kami. :))
zanima me samo še kakšo vrednost ima kot default, npr. da poženem program z bash blabla.sh /home 10
ali bo vzel 10 kot 10b ali 10kb ali 10 mb ?

Zgodovina sprememb…

  • spremenil: xtrEeme ()

BigWhale ::

Verjetno je default 512 bytni blok... ;>

c3p0 ::

Najprej bi vas lahko naučili ukaza "man" in kako si z njim pomagati.

-size n[cwbkMG]
File uses n units of space. The following suffixes can be used:

'b' for 512-byte blocks (this is the default if no suffix is used)

'c' for bytes

'w' for two-byte words

'k' for Kilobytes (units of 1024 bytes)

'M' for Megabytes (units of 1048576 bytes)

'G' for Gigabytes (units of 1073741824 bytes)

The size does not count indirect blocks, but it does count blocks in sparse files that are not actually
allocated. Bear in mind that the '%k' and '%b' format specifiers of -printf handle sparse files differ-
ently. The 'b' suffix always denotes 512-byte blocks and never 1 Kilobyte blocks, which is different to
the behaviour of -ls.

xtrEeme ::

in kako se pravilno napiše ukaz če želim byte
sem probal -size c pa ni dobro nekaj

c3p0 ::

ko boš odprl "man find", boš videl tudi:

Numeric arguments can be specified as

+n for greater than n,

-n for less than n,

n for exactly n.

xtrEeme ::

aha hvala. imam še eno vprašanje, sem pogledal man find pa mi ne uspe narediti tega. naprimer da hočem v neki mapi poiskati vse datoteke ki vsebujejo v imenu datoteke besedo test. kako naredim to?

hvala

c3p0 ::

find /mapa -name '*test*'

Greek ::

Rad bi z ukazom v ukazni vrstici izpisal vsebino (polna imena dadotek) iz registra nazadnje uporabljenih datotek (.recently-used). Kako naj to storim?

Recimo cat .recently-used mi vedno izpiše vsebino v xml obliki (torej mi izpiše .recently-used.xbel)...


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Software raid 1 (strani: 1 2 )

Oddelek: Pomoč in nasveti
5710766 (9908) uporabniik
»

[UBUNTU SERVER 10.04] Grub se ne postavi

Oddelek: Operacijski sistemi
478886 (8098) Icematxyz
»

Pomoč pri ukazih v linuxu

Oddelek: Operacijski sistemi
101395 (1039) brodul
»

Noob se loti programiranje v BASH

Oddelek: Programiranje
212195 (1595) c3p0
»

dostop iz linuxa do datotek v win xp

Oddelek: Operacijski sistemi
232145 (1694) palma

Več podobnih tem