Last modified in directory (recursief)

Pagina: 1
Acties:

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Topicstarter
Ik wil van een directory graag weten wat de laatste wijzigingsdatum is van een van de bestanden. Nu ben ik al redelijk op weg met
code:
1
ls --full-time -o -R |awk '{ print $6,$7,$8,$9 }'
maar ik kan deze niet sorteren omdat de datum in het long format is... en dat kan ik niet aanpassen? Of is het wel mogelijk om de timestamp gewoon als 25 05 2003 weer te geven?

[edit] ik ben al wat verder;
code:
1
 ls --full-time -o -R |awk '{ print $6,$7,$8,$9 }' |date +%D
zou het moeten doen; maar geeft slechts 1 regel terug :'(

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Topicstarter
Aan de hand van een tip van Negotiator; een while lusje:
code:
1
while (i=`ls -al`); do echo date +D% $i; done
output:
code:
1
2
3
4
5
date +D%
date +D%
date +D%
date +D%
date +D%
..

en met teruggaan naar een basic commando:
code:
1
while (i=`ls --full-time`); do echo $i; done
krijg ik slechts lege regels....

[ Voor 27% gewijzigd door Spider.007 op 25-07-2003 12:34 ]

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • JeroenE
  • Registratie: Januari 2001
  • Niet online
maar ik kan deze niet sorteren omdat de datum in het long format is...
Ik begrijp het niet. Dat is toch juiost wat je wil? Datums in de vorm van yyy-mm-dd (dus: 2003-07-25) kan je juist veel beter sorteren dan dd-mm-yyy (dus: 25-07-2003) :?

Als je een rijtje van de laatste hebt zal 31-01-1980 altijd [b]na[b] 01-01-2003 sorteren omdat de 3 groter is dan de 0.
code:
1
ls -o --full-time -R|awk '{ print $5,$6,$7,$8,$9 }'|sort
Volgens mij ligt het ook heel erg aan de versie van ls die je hebt. Ik heb verise 5.0 en als ik jouw statement uit de uitvoer is alles OK. Welke versie van ls gebruik jij?

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Topicstarter
jeroene schreef op 25 July 2003 @ 12:56:
[...]
Ik begrijp het niet. Dat is toch juiost wat je wil? Datums in de vorm van yyy-mm-dd (dus: 2003-07-25) kan je juist veel beter sorteren dan dd-mm-yyy (dus: 25-07-2003) :?
dat klopt; met long bedoelde ik Mar 23 2003
Als je een rijtje van de laatste hebt zal 31-01-1980 altijd [b]na[b] 01-01-2003 sorteren omdat de 3 groter is dan de 0.

[...]


Volgens mij ligt het ook heel erg aan de versie van ls die je hebt. Ik heb verise 5.0 en als ik jouw statement uit de uitvoer is alles OK. Welke versie van ls gebruik jij?
dat is wel raar... Ik heb hier versie ls (fileutils) 4.1 te pakken. zal het daaraan liggen? Of zit ik soms in de verkeerde shell?

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • JeroenE
  • Registratie: Januari 2001
  • Niet online
dat is wel raar... Ik heb hier versie ls (fileutils) 4.1 te pakken. zal het daaraan liggen? Of zit ik soms in de verkeerde shell?
De shell zal niet zoveel uitmaken, maar de versie van ls wel. Je kan een nieuwere versie installeren ;)
Als je perl hebt kan je ook hier examples downloaden. In die tarball zit veel perl code, maar jij bent op zoek naar de file "lst" uit "ch09". Die kan precies doen wat jij wil :)

PS "date" gebruik je om de datum van je systeem te zetten en niet om de datum van een bestand op te vragen. Daarom werkt jouw(of die van Negotiator?) idee met date dus niet.

[ Voor 18% gewijzigd door JeroenE op 25-07-2003 13:39 ]


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Topicstarter
jeroene schreef op 25 July 2003 @ 13:38:
[...]
De shell zal niet zoveel uitmaken, maar de versie van ls wel. Je kan een nieuwere versie installeren ;)
Als je perl hebt kan je ook hier examples downloaden. In die tarball zit veel perl code, maar jij bent op zoek naar de file "lst" uit "ch09". Die kan precies doen wat jij wil :)

PS "date" gebruik je om de datum van je systeem te zetten en niet om de datum van een bestand op te vragen. Daarom werkt jouw(of die van Negotiator?) idee met date dus niet.
Ik zal eens gaan kijken; bedankt voor de link. Overigens gebruik ik date om een conversie te doen; en dat werkt perfect hoor :?
code:
1
date -d 'May 20 2003' +'%Y %m %d'
:)

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • JeroenE
  • Registratie: Januari 2001
  • Niet online
Overigens gebruik ik date om een conversie te doen; en dat werkt perfect hoor :?
Ja, dat werkt ook goed. Maar in je post was je bezig een lijstje te doorlopen met bestanden en dan "date +D% $i" te doen. Dat werkt dus niet.

Een lijst doorlopen in bash doe je ook niet met while, maar met for:
code:
1
for i in `ls -al`; do echo $i; done
Dat doet ook niet wat je wilt, want de lijst wordt gesplitst op spaties en niet op regeleinden.

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Topicstarter
Ok, dat is ook nog wel op te lossen; maar ik heb het idee dat ik dan te ver ga.... Hoe zou jij de laatste datum waarop een bestand is aangepast uit een directory vissen (recursief) :?

wat ik dus zou kunnen doen is
code:
1
for i in `ls -o --full-time -R|awk '{ print $6_$7_$8_$9 }'`; do date +'%Y %m %d' -d <echo $i|sed -e '/_/ /'; done
(untested)

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • JeroenE
  • Registratie: Januari 2001
  • Niet online
Ok, dat is ook nog wel op te lossen; maar ik heb het idee dat ik dan te ver ga...
Die for moet je sowieso niet gebruiken, omdat het splitsen op spaties niet is wat je wil. Er zijn nog wel meer problemen: hoe krijg je de omzetting met date goed zonder je filename te verliezen bijvoorbeeld.

Iets wat ik in eerste instantie over het hoofd had gezien is dat je met het ls commando geen dirs in je filename hebt staan. Het is wel leuk om te weten dat filexy7824q.txt het laatst gewijzigd is, maar als je niet weet in welke dir die staat dan moet je dat weer gaan opzoeken.

Dat zorgde er wel voor dat ik een inval kreeg. Waarom laat je find niet gewoon alle bestanden zoeken en de datum erbij printen?
code:
1
find . -printf "%TY-%Tm-%Td %p\n"|sort
In de manpage van find kan je vinden welke andere %-vars je kan gebruiken als je bijvoorbeeld ook de accesstime wil zien, of de grootte van de file, etc.

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Topicstarter
jeroene schreef op 25 juli 2003 @ 22:55:
[...]
Die for moet je sowieso niet gebruiken, omdat het splitsen op spaties niet is wat je wil. Er zijn nog wel meer problemen: hoe krijg je de omzetting met date goed zonder je filename te verliezen bijvoorbeeld.

Iets wat ik in eerste instantie over het hoofd had gezien is dat je met het ls commando geen dirs in je filename hebt staan. Het is wel leuk om te weten dat filexy7824q.txt het laatst gewijzigd is, maar als je niet weet in welke dir die staat dan moet je dat weer gaan opzoeken.

Dat zorgde er wel voor dat ik een inval kreeg. Waarom laat je find niet gewoon alle bestanden zoeken en de datum erbij printen?
code:
1
find . -printf "%TY-%Tm-%Td %p\n"|sort
In de manpage van find kan je vinden welke andere %-vars je kan gebruiken als je bijvoorbeeld ook de accesstime wil zien, of de grootte van de file, etc.
Dit is exact wat ik zoek _/-\o_ Ik heb het probleem continu vanaf de verkeerde kant bekeken; maar je hebt gelijk; dit werkt perfect

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate

Pagina: 1