Portál AbcLinuxu, 25. dubna 2024 09:03


Dotaz: bash-zistenie najvacsieho suboru a vypisanie velkosti

18.12.2006 17:29 kamil
bash-zistenie najvacsieho suboru a vypisanie velkosti
Přečteno: 313×
Odpovědět | Admin
potrebujem vytvorit bash script ktory v zadanom adresari vyberie subor najvacsej velkosti. A jeho nazov a umiestnenie vypise na obrazovku. Neviete poradit ako by som mal postupvat? A akym prikazom zistim velkost suboru? Diq
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

18.12.2006 17:34 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: bash-zistenie najvacsieho suboru a vypisanie velkosti
Odpovědět | | Sbalit | Link | Blokovat | Admin
man find
man sort
man head

a možno ešte
man du
man xargs
18.12.2006 17:38 Andrej Herceg | skóre: 43
Rozbalit Rozbalit vše Re: bash-zistenie najvacsieho suboru a vypisanie velkosti
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vyskúšaj:
#!/bin/sh

dir="adresar"
stat -c "%s %n" "$dir/"* | sort -n -r | head -n 1
18.12.2006 18:00 Andrej Herceg | skóre: 43
Rozbalit Rozbalit vše Re: bash-zistenie najvacsieho suboru a vypisanie velkosti
Tu je novšia verzia:
#!/bin/sh

# tato verzia prechadza aj podadresare
file=$( find "$1" -print0 | xargs -0 stat -c "%s %n" | sort -n -r | head -n 1 )

# tato nie
#file=$( find "$1" -maxdepth 1 -print0 | xargs -0 stat -c "%s %n" | sort -n -r | head -n 1 )

# vymazeme zo zaciatku velkost suboru a medzeru ("123456 ")
file=${file#* }

echo $file

# toto ak potrebujes zvlast dirname a basename
#dirname "$file"
#basename "$file"
18.12.2006 18:35 pard | skóre: 17
Rozbalit Rozbalit vše Re: bash-zistenie najvacsieho suboru a vypisanie velkosti
Odpovědět | | Sbalit | Link | Blokovat | Admin
ls -l --sort size
David Watzke avatar 18.12.2006 21:34 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: bash-zistenie najvacsieho suboru a vypisanie velkosti
ls -lS
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
18.12.2006 19:00 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: bash-zistenie najvacsieho suboru a vypisanie velkosti
Odpovědět | | Sbalit | Link | Blokovat | Admin
Neměla by se založit samostatná kategorie domácí úkoly a zápočťáky? :-(
19.12.2006 11:01 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: bash-zistenie najvacsieho suboru a vypisanie velkosti
Odpovědět | | Sbalit | Link | Blokovat | Admin
find -type f -printf '%b\t%p\n' | sort -nr | head -1 | cut -f2
A dostanu za to aspoň lízátko?
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
19.12.2006 11:19 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: bash-zistenie najvacsieho suboru a vypisanie velkosti
A nebo podstatně rychlejší
perl -mFile::Find=find -le 'find(sub{-f $_ and ($a=(stat)[7]) > $max and $max=$a and $name = $File::Find::name}, @ARGV); print $name' .
případně v přímo v zadaném adresáři
perl -le '-f $_ and ($a=(stat)[7]) > $max and $max=$a and $name=$_ for map glob("$_/*"), @ARGV; print $name' .
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.