Portál AbcLinuxu, 10. května 2025 07:38
if [ find -mtime 0 NOT "" ] ":))" >> /etc/samba_zaloha/log.log if [ find -mtime 1 NOT "" ] ":)" >> /etc/samba_zaloha/log.logDíky moc :)
Zdravim,
bolo by mozno jednoduchsie vysvetlit, co ma robit ten kus kodu a co mate za ciel ;)
#! /bin/bash zkouskaa=`find (adresář) -mtime 0` zkouskab=`find (adresář) -mtime 1` if [ "$zkouskaa" != "" ]; then ":))" >> /etc/samba_zaloha/log.log fi if [ "$zkouskab" != "" ]; then ":)" >> /etc/samba_zaloha/log.log fiTakhle nějak? Samosebou (adresář) nahradíš cestou k tomu kde hledat.
#! /bin/bash zkouskaa=`find (adresář) -mtime 0` zkouskab=`find (adresář) -mtime 1` if [ "$zkouskaa" != "" ]; then echo ":))" >> /etc/samba_zaloha/log.log fi if [ "$zkouskab" != "" ]; then echo ":)" >> /etc/samba_zaloha/log.log fi
"$zkouskaa" != ""
by pro velky pocet souboru mohla delat neplechu a v kazdem pripade bude zbytecne zdrzovat. Je lepsi to po prvnim nalezenem souboru uriznout:
if [ `find /somewhere -mtime 1 | head -n1` ]; then echo ":))" >> /etc/samba_zaloha/log.log fi
if find /somewhere -mtime 1 -quit &>/dev/null; then echo ":))" >> /etc/samba_zaloha/log.log fialebo strucne
find /somewhere -mtime 1 -quit 2>/dev/null && echo ":))" >> /etc/samba_zaloha/log.logEste sa vyuzit fprintf vo find, ale ten neapenduje, ale prepisuje subor log.log a vzdy ho vytvori (aspon s dlzkou 0).
find usb -mtime 1 -fprintf /etc/samba_zaloha/log.log ":))\n" -quit
-quit
jsem opravdu zapomel, kdyz se pouzije -print -quit
tak to vypise prvni nalezenou cestu a skonci, a to uz je testovatelne. Pokud by stacil fprintf tak je urcite nejlepsi, ale autorka se ptala na if, ne find, takze predpokladam ze chce nakonec do toho podmineneho bloku dat neco slozitejsiho.
radon@krypton ~ $ find /boot -name grub && echo nasli moji radcove /boot/grub nasli moji radcove radon@krypton ~ $ find /boot -name neexistuje && echo nasli moji radcove nasli moji radcove radon@krypton ~ $ find --version find (GNU findutils) 4.4.2Nedal jsi nahodou neexistujici cestu jako koren hledani? To JE chyba a find skonci s 1. Viz manstranka:
EXIT STATUS find exits with status 0 if all files are processed successfully, greater than 0 if errors occur. This is deliberately a very broad description, but if the return value is non-zero, you should not rely on the correctness of the results of find.Cili muze skoncit s 1 i kdyz neco najde, treba vyse uvedeny priklad jsem puvodne chtel demonstrovat hledanimn passwd v /etc, ale dostal jsem 1 protoze /etc/cups/ssl je necitelny.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.