Portál AbcLinuxu, 8. května 2025 14:58
Slušeno by se k tomu ls přidat i parametr -h
ls -ll
mrkva@Destiny:~$ if [ 0 -eq 0 ]; then echo j; else echo n; fi j mrkva@Destiny:~$ if 0 -eq 0; then echo j; else echo n; fi bash: 0: příkaz nenalezen n(Jasně, je tu test).
if grep neco soubor > /dev/null then echo "neco je v souboru" fi
if expr $f '=' 1 > /dev/null then ... fiPamatuju si, na svůj první unixový předmět - přednášející nám říkal: "Za if je příkaz, když mi někdo bude u zkoušky tvrdit, že test nebo hranatá závorka, tak ho vyhodím."
if [ $f == 1 ] ; then
jen odeberu závorky, tak to fungovat prostě nebude.
Za if je příkazBlbě, za if je jeden nebo více příkazů.
grep neco soubor && echo "neco je v souboru"? Nebo jeste neco jinyho?
Když už, takfor i in `find -maxdepth 1 -type f`; do let f++; done;
find -maxdepth 1 -type f | wc -l
a určitě by to šlo ještě úsporněji.
Mimochodem, skutečně budou čísla sedět, když bude v aktuálním adresáři soubor, který bude mít v názvu nějaký znak z $IFS
? #!/bin/bash
# 2010-12-25 version 0.2
ls -oFX --color=auto --group-directories-first --time-style=long-iso
echo ==========
t=`du --human-readable --separate-dirs --one-file-system --summarize`
# next line strips the dot at the end of the string
t=${t%\.}
f=`find -maxdepth 1 -type f | wc -l`
h=`find -maxdepth 1 -type f -name ".*" | wc -l`
if [ $f -eq 1 ] ; then
str1="FILE"
else
str1="FILES"
fi
if [ $h -eq 1 ] ; then
str2="FILE"
else
str2="FILES"
fi
echo "TOTAL SIZE $t IN $f $str1 ($h HIDDEN $str2)"
Uz zbyva jen urychlit prvni spusteni (napr. v ~/ je to dost znat, domnivam se, ze to zpusobuje "du", ktery i pres parametr --summarize stejne leze do podadresaru a neco tam pocita). Vedel by nekdo, jak na to?
ls
a soucet bajtu me vetsinou nezajima. Tenhle skriptik se mi hodi jen obcas.
je to dost znatTak to toho máš v ~ ještě celkem málo, když je to „jenom“ dost znát:
78G . real 2m2.525s user 0m1.416s sys 0m7.132s
58G . real 4m32.711s user 0m0.280s sys 0m2.920s
$ time du -s --si * 17k lost+found 15G marian 1,7M test real 0m21.347s user 0m0.830s sys 0m0.379s
ls
zobrazit reálný součet bajtů? Když použiju
ls -l --block-size=1
tak dostanu zřejmě číslo, které vyjadřuje celkové zabrané místo na disku.
Upřesním:
total 32768 -rw-r--r-- 1 ghaad users 4615 Dec 7 11:12 file1.inc -rw-r--r-- 1 ghaad users 4666 Dec 7 10:52 file2.inc -rw-r--r-- 1 ghaad users 5447 Dec 7 11:02 file3.inc -rw-r--r-- 1 ghaad users 5267 Dec 7 11:06 file4.incNa disku soubory zabírají dohromady zřejmě 32768 bajtů, reálný součet je ale 19995 bajtů. Ten můj šílený skript přepisuju, jde to celé opravdu napsat o dost čistěji a bez použití
du
, čímž eliminuju tu pomalost při prvním spuštění.
alias ll='ls -l' alias lh='ls -ld .*' alias xdu='du -hs *' alias xdh='du -hs .[^.]*'
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.