Portál AbcLinuxu, 10. května 2025 01:32

Dotaz: najít nejstarší "složku"

Johny z Podoli avatar 19.12.2006 13:14 Johny z Podoli | skóre: 26 | blog: rocfdebian
najít nejstarší "složku"
Přečteno: 136×
Odpovědět | Admin
ahoj,
mám na jednom serveru adresáře (viz dole) a potřebuji sciptem najít nejstarší z nich, napadá Vás někoho jak?
já jsem bezradnej :D

drwxr-xr-x   5 root root 4.0K Nov 17 23:00 20061117
drwxr-xr-x  26 root root 4.0K Nov 18 23:00 20061118
drwxr-xr-x  26 root root 4.0K Nov 19 23:00 20061119
drwxr-xr-x  26 root root 4.0K Nov 20 23:00 20061120
drwxr-xr-x  26 root root 4.0K Nov 21 23:00 20061121
drwxr-xr-x  26 root root 4.0K Nov 22 23:00 20061122
drwxr-xr-x  26 root root 4.0K Nov 23 23:00 20061123
drwxr-xr-x  26 root root 4.0K Nov 24 23:00 20061124
drwxr-xr-x  26 root root 4.0K Nov 25 23:00 20061125
drwxr-xr-x  26 root root 4.0K Nov 26 23:00 20061126
drwxr-xr-x  26 root root 4.0K Nov 27 23:00 20061127
drwxr-xr-x  26 root root 4.0K Nov 28 23:00 20061128
drwxr-xr-x  26 root root 4.0K Nov 29 23:00 20061129
drwxr-xr-x  26 root root 4.0K Nov 30 23:00 20061130
drwxr-xr-x  26 root root 4.0K Dec  1 23:00 20061201
drwxr-xr-x  26 root root 4.0K Dec  2 23:00 20061202
drwxr-xr-x  26 root root 4.0K Dec  3 23:00 20061203
drwxr-xr-x  26 root root 4.0K Dec  4 23:00 20061204
drwxr-xr-x  26 root root 4.0K Dec  5 23:00 20061205
drwxr-xr-x  26 root root 4.0K Dec  6 23:00 20061206
drwxr-xr-x  26 root root 4.0K Dec  7 23:00 20061207
drwxr-xr-x  26 root root 4.0K Dec  8 23:00 20061208
drwxr-xr-x  26 root root 4.0K Dec  9 23:00 20061209
drwxr-xr-x  26 root root 4.0K Dec 10 23:00 20061210
drwxr-xr-x  26 root root 4.0K Dec 11 23:00 20061211
drwxr-xr-x  26 root root 4.0K Dec 12 23:00 20061212
drwxr-xr-x  26 root root 4.0K Dec 13 23:00 20061213
drwxr-xr-x  26 root root 4.0K Dec 14 23:00 20061214
drwxr-xr-x  26 root root 4.0K Dec 15 23:00 20061215
drwxr-xr-x  18 root root 4.0K Dec 16 15:00 20061216

Můj web o táborech: Letní dětské tábory, Hudební tábor , Můj nový blog na Nul.cz
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

19.12.2006 13:20 Andrej Herceg | skóre: 43
Rozbalit Rozbalit vše Re: najít nejstarší "složku"
Odpovědět | | Sbalit | Link | Blokovat | Admin
ls -ltr by nepomohlo?
Johny z Podoli avatar 19.12.2006 13:24 Johny z Podoli | skóre: 26 | blog: rocfdebian
Rozbalit Rozbalit vše Re: najít nejstarší "složku"
super :D
ls -ltr| grep drwxr-xr-x|awk {' print $9'}| head -n 1
a je to, díky :)
Můj web o táborech: Letní dětské tábory, Hudební tábor , Můj nový blog na Nul.cz
19.12.2006 13:30 Andrej Herceg | skóre: 43
Rozbalit Rozbalit vše Re: najít nejstarší "složku"
alebo

ls -tr1 | grep "/$"
19.12.2006 13:37 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: najít nejstarší "složku"
find . -type d -maxdepth 1 -print0 | xargs -0 ls -ltrd | head -n 1
ls -ltrd */. | head -n 1
Josef Kufner avatar 20.12.2006 18:28 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: najít nejstarší "složku"
Při velkém množství souborů tohle nebude fungovat ani jedno a obojí ze stejného důvodu.
Hello world ! Segmentation fault (core dumped)
David Watzke avatar 20.12.2006 18:42 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: najít nejstarší "složku"
To první jo...
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
Josef Kufner avatar 20.12.2006 23:43 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: najít nejstarší "složku"
Ani to nebude fungovat. Jen se to projeví jinak.
Hello world ! Segmentation fault (core dumped)
David Watzke avatar 21.12.2006 07:48 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: najít nejstarší "složku"
Hmm, SIGPIPE.
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
21.12.2006 11:05 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: najít nejstarší "složku"
SIGPIPE je jen side efect head -1, problém je v xargs
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é.
21.12.2006 11:25 Andrej Herceg | skóre: 43
Rozbalit Rozbalit vše Re: najít nejstarší "složku"
Ak sa môžem opýtať, aké je najlepšie riešenie? Mne sa najviac páči ls -trp | grep -m 1 /, ale aj to bude mať pravdepodobne problém pri veľmi veľmi... veľkom počte súborov.
Josef Kufner avatar 21.12.2006 11:46 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: najít nejstarší "složku"
Jo, tohle už fungovat bude. Jestli to bude mít problém závisí jen na šikovnosti ls.
Hello world ! Segmentation fault (core dumped)
21.12.2006 10:59 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: najít nejstarší "složku"
To druhé bude tuším od bash 3.0 fungovat. Bohužel :( To pak těžko vysvětlovat co je špatně.
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é.
21.12.2006 11:10 Andrej Herceg | skóre: 43
Rozbalit Rozbalit vše Re: najít nejstarší "složku"
Mám "GNU bash, version 3.00.16(2)-release", a nefunguje ani to druhé.

Teda konkrétne: "bash: /bin/ls: Príliš dlhý zoznam argumentov"
21.12.2006 11:58 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: najít nejstarší "složku"
Máte pravdu. Ta hranice je posunuta dál, ale furt je. Já jsem ji přestal vídat a tak jsem si myslel, že už tam není a ona je jen trochu dál.
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é.
21.12.2006 08:18 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: najít nejstarší "složku"
:-)
find . -type d | (read file; while read line; do [ "$file" -ot "$line" ] || file="$line"; done; echo "$file")
21.12.2006 11:51 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: najít nejstarší "složku"
Expandovat parametry ls zpravidla není dobrý nápad. Asi bych raději použil
find -maxdepth 1 -type d -printf '%C@\t%p\n' | sort -n | head -n1 | cut -f2-
nebo rychlejší
perl -le 'for(@ARGV){-d $_ and (($a=(stat)[10]) < $min or !$min) and $min=$a and $name = $_ while glob("$_/{.,}*")} print $name' .
ale to má význam jen pro pár desítek tísíc adresářů ;-)

P.S.: První příklad bude fungovat jen pokud nestrkáte do jmen adresářů konec řádků, pak je to trošku těžší. Ten druhej příklad zbaští kde co :-)
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 13:34 žabža
Rozbalit Rozbalit vše Re: najít nejstarší "složku"
Proti awk nic nemám, ale stačí

ls -trp |grep /|head -1

a pokud jsou tam jenom adresáře, tak ten grep je zbytečný...

ls -trp |head -1

... teda pokud není to grep-ování 'drwxr-xr-x' nějaký důležitý trik :-)
David Watzke avatar 19.12.2006 18:24 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: najít nejstarší "složku"
Proti awk nic nemám, ale stačí

ls -trp |grep /|head -1
Proti head nic nemám, ale stačí
ls -trp | grep -m1 '/$'
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
19.12.2006 18:31 žabža
Rozbalit Rozbalit vše Re: najít nejstarší "složku"
Oooooooooo člověk se má pořád co učit :-) nicméně trvám na tom, že stačí matchovat / a ten $ je tam navíc (lomítko se nemůže vyskytnout jinde než na konci)...
David Watzke avatar 19.12.2006 18:43 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: najít nejstarší "složku"
To je pravda...
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
19.12.2006 23:32 Jooky (inactive) | skóre: 39 | blog: Jooky | Bratislava
Rozbalit Rozbalit vše Re: najít nejstarší "složku"
Nad tym sa mi neda nic ine len pousmiat. Minule nam typci zo sapu povytvarali subori (normalne, vo find ako -type f) s lomitkom na konci nazvu. Cize vypis ls vyzeral: nejaky_subor/ nejaky_dalsi_subor/ .... Ja by som preto radsej pouzil find -type d a nejake dalsie parametre.

bdw. normalne unix nepovoli len nulovy znak (NULL, '\0') v nazve, takze moze byt kadeco :o)
20.12.2006 07:35 žabža
Rozbalit Rozbalit vše Re: najít nejstarší "složku"
A můžete předvést, jak se takový soubor vytvoří? Mě se to nikdy nepodařilo (asi jsem se málo snažil), a jsem hlava otevřená novým poznatkům...
20.12.2006 12:54 petr
Rozbalit Rozbalit vše Re: najít nejstarší "složku"
touch `echo -en 'cokoli*co?tě/napadne\'`
20.12.2006 13:04 Andrej Herceg | skóre: 43
Rozbalit Rozbalit vše Re: najít nejstarší "složku"
Nemôže to súvisieť aj so súborovým systémom (u mňa to na ext3 partícii to nefunguje)?
20.12.2006 13:08 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: najít nejstarší "složku"
touch: cannot touch `cokoli*cote/napadne\\': No such file or directory
:-)

meno súboru v unix-e nemôže obsahovať ascii 0 (C-čkové reťazce) a lomítko (oddeľovač cesty).

20.12.2006 13:16 Fuck You | skóre: 16 | blog: NeOpToLeMoS
Rozbalit Rozbalit vše Re: najít nejstarší "složku"
touch: cannot touch `cokoli*co?tě/napadne\\': No such file or directory :-D
20.12.2006 13:22 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: najít nejstarší "složku"
Tiež som to skúsil a tiež som dostal hlášku, ale nevzdal som to a napísal malý program:
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int main(int argc,char *argv[])
{
        int h=open("subor\\",O_CREAT|O_WRONLY);
        close(h);
        return 0;
}
a kupodivu - ten zafunguje. A rm na taký súbor tiež zafunguje.
20.12.2006 13:28 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: najít nejstarší "složku"
Som blb. Samozrejme spätné lomítko zafunguje, normálne vráti chybu.
20.12.2006 13:29 Andrej Herceg | skóre: 43
Rozbalit Rozbalit vše Re: najít nejstarší "složku"
Ale ak tam dáš "subor/" tak to nefunguje :)
21.12.2006 19:16 Jooky (inactive) | skóre: 39 | blog: Jooky | Bratislava
Rozbalit Rozbalit vše Re: najít nejstarší "složku"
Nepametam si aky to bol fs, na ktorom sa to tym sapakom podarilo a kedze v robote mame cca 800 unix masin tak pokial na to nenatrafim tak neni sanca to zistit. Co sa tyka ext3 alebo ineho linux fs tak tam mam dojem ze to je "osetrene".

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.