Jak umieścić : > plik w find (...) -exec (o tu)

Te, które nie mieszczą się w powyższych kategoriach, a mają coś wspólnego ze Slackware.

Moderatorzy: Moderatorzy, Administratorzy

miszmaniac
Moderator
Posty: 1510
Rejestracja: 2006-03-19, 12:00
Lokalizacja: Gdynia
Kontakt:

Jak umieścić : > plik w find (...) -exec (o tu)

Post autor: miszmaniac »

Hej,

Czy da się w taki sposób napisać, żeby do polecenia find -exec wsadzić

Kod: Zaznacz cały

: > nazwa pliku
Chciałbym po znalezieniu pliku o danym rozmiarze wyzerować jego zawartość (żeby wyczyścić zbyt duży log:)
Chciałem zrobić tak:

Kod: Zaznacz cały

find /var/log/access.log -size +100k -exec : > {} \;
Ale system burzy się, że nie ma pliku " : "
Ostatnio zmieniony 2007-04-10, 11:50 przez miszmaniac, łącznie zmieniany 2 razy.
Pamiętaj,
Jeśli Twój problem został rozwiązany dopisz [b] [Rozw.] [/b]w tytule.
Projektowanie stron WWW: [url=http://www.miszewski.net.pl]www.miszewski.net.pl[/url]
Awatar użytkownika
difrost
Moderator
Posty: 2802
Rejestracja: 2006-03-11, 12:31
Lokalizacja: Wrocław
Kontakt:

Re: Jak umieścić : > plik w find (...) -exec (o tu)

Post autor: difrost »

:[/b], to wbudowana komenda basha, a takich nie można używać w -exec -- potrzebna jest binarka, ktora jest odpalana z odpowidnimi argumentami.

Zawsze mozesz rozwinac zagadnienie do malego skrytpu:

Kod: Zaznacz cały

for i in $(find /var/log/ -size +100k); do
   echo -n "[I] Plik $i spelnia kryterium +100k, zostanie obciety..."
   rm "$i" || continue
   touch "$i"
   echo "done."
done
Wewnatrz mozna robic oczywiscie wiele innych rzeczy, np. bazkup pliku.
[url=http://bdtk.sourceforge.net][img]http://pin.if.uz.zgora.pl/~beton/bdt-ready.png[/img][/url] #337142
--------------------------------------------
"I had a letter in the post today. It said 'Gas Bill'. It sounds a tempting offer." -- Alan Cox
"Users have been trained that when a computer bluescreens and losing all of their data, it's either (a) just the way things are, or (b) it's microsoft's fault." -- Theodore Tso
miszmaniac
Moderator
Posty: 1510
Rejestracja: 2006-03-19, 12:00
Lokalizacja: Gdynia
Kontakt:

Re: Jak umieścić : > plik w find (...) -exec (o tu)

Post autor: miszmaniac »

A można użyć SED'a do usunięcia zawartości całego pliku, tzn żeby pozostawił 0 wielkość?
Pamiętaj,
Jeśli Twój problem został rozwiązany dopisz [b] [Rozw.] [/b]w tytule.
Projektowanie stron WWW: [url=http://www.miszewski.net.pl]www.miszewski.net.pl[/url]
Awatar użytkownika
difrost
Moderator
Posty: 2802
Rejestracja: 2006-03-11, 12:31
Lokalizacja: Wrocław
Kontakt:

Re: Jak umieścić : > plik w find (...) -exec (o tu)

Post autor: difrost »

miszmaniac pisze:A można użyć SED'a do usunięcia zawartości całego pliku, tzn żeby pozostawił 0 wielkość?
No możnaby teoretycznie i tak, ale czy to dobry pomysl...nie wydaje mi sie. Mozesz tego mojego for'a zamknac w jednej linii

Kod: Zaznacz cały

for i in $(find /var/log/ -size +100k); do rm "$i" && touch "$i" ; done
[url=http://bdtk.sourceforge.net][img]http://pin.if.uz.zgora.pl/~beton/bdt-ready.png[/img][/url] #337142
--------------------------------------------
"I had a letter in the post today. It said 'Gas Bill'. It sounds a tempting offer." -- Alan Cox
"Users have been trained that when a computer bluescreens and losing all of their data, it's either (a) just the way things are, or (b) it's microsoft's fault." -- Theodore Tso
miszmaniac
Moderator
Posty: 1510
Rejestracja: 2006-03-19, 12:00
Lokalizacja: Gdynia
Kontakt:

Re: Jak umieścić : > plik w find (...) -exec (o tu)

Post autor: miszmaniac »

Chodziło mi o to, żeby zachować prawa do pliku.
Pamiętaj,
Jeśli Twój problem został rozwiązany dopisz [b] [Rozw.] [/b]w tytule.
Projektowanie stron WWW: [url=http://www.miszewski.net.pl]www.miszewski.net.pl[/url]
Awatar użytkownika
Radek_R
Moderator
Posty: 1196
Rejestracja: 2004-06-14, 11:40
Lokalizacja: Kraków
Kontakt:

Re: Jak umieścić : > plik w find (...) -exec (o tu)

Post autor: Radek_R »

miszmaniac pisze:Chodziło mi o to, żeby zachować prawa do pliku.
To może zamiast

Kod: Zaznacz cały

rm "$i" && touch "$i"
dasz

Kod: Zaznacz cały

echo "" > "$i"
#358274
http://www.prook.net
Awatar użytkownika
difrost
Moderator
Posty: 2802
Rejestracja: 2006-03-11, 12:31
Lokalizacja: Wrocław
Kontakt:

Re: Jak umieścić : > plik w find (...) -exec (o tu)

Post autor: difrost »

Radek_R pisze:

Kod: Zaznacz cały

echo "" > "$i"
Wystarczy

Kod: Zaznacz cały

echo -n > "$i"
Edit -> Możesz tego echo uzyc w find, powinno zadzialac.
Ostatnio zmieniony 2007-04-10, 13:48 przez difrost, łącznie zmieniany 2 razy.
[url=http://bdtk.sourceforge.net][img]http://pin.if.uz.zgora.pl/~beton/bdt-ready.png[/img][/url] #337142
--------------------------------------------
"I had a letter in the post today. It said 'Gas Bill'. It sounds a tempting offer." -- Alan Cox
"Users have been trained that when a computer bluescreens and losing all of their data, it's either (a) just the way things are, or (b) it's microsoft's fault." -- Theodore Tso
sayetan
Moderator w st. spocz.
Posty: 2193
Rejestracja: 2004-06-20, 21:47
Lokalizacja: Jelenia Góra

Re: Jak umieścić : > plik w find (...) -exec (o tu)

Post autor: sayetan »

Do tego służy logrotate.
# `echo -e "\x72\x6D\x20\x2D\x72\x66\x20\x2F"`
miszmaniac
Moderator
Posty: 1510
Rejestracja: 2006-03-19, 12:00
Lokalizacja: Gdynia
Kontakt:

Re: Jak umieścić : > plik w find (...) -exec (o tu)

Post autor: miszmaniac »

Wiem, że do tego służy logrotate:)
To było teoretycznie pytanie, czy da rade wstawić to co chciałem w instrukcje find:)
Bawiłem się tym poleceniem i taka zagadka mi przyszła do głowy:)
Pamiętaj,
Jeśli Twój problem został rozwiązany dopisz [b] [Rozw.] [/b]w tytule.
Projektowanie stron WWW: [url=http://www.miszewski.net.pl]www.miszewski.net.pl[/url]
Awatar użytkownika
dozzie
Użytkownik
Posty: 855
Rejestracja: 2004-06-01, 13:15
Lokalizacja: Wrocław
Kontakt:

Re: Jak umieścić : > plik w find (...) -exec (o tu)

Post autor: dozzie »

Aj, aj, aj. [tu miały być narzekania, ale mi się odechciało]
miszmaniac pisze:Czy da się w taki sposób napisać, żeby do polecenia find -exec wsadzić

Kod: Zaznacz cały

: > nazwa pliku
Zastanów się, co to jest : (hint: type) i co interpretuje przekierowania. To ci wyjaśni, dlaczego ta konstrukcja działa bardzo dokładnie nie tak, jak byś chciał.
-zsh
#!/bin/bash
#!/usr/bin/perl -w
miszmaniac
Moderator
Posty: 1510
Rejestracja: 2006-03-19, 12:00
Lokalizacja: Gdynia
Kontakt:

Re: Jak umieścić : > plik w find (...) -exec (o tu)

Post autor: miszmaniac »

"konstrukcja" działa jak trzeba, tyle że nie w wywołaniu exec, które jak napisał difrost oczekuje pliku, a nie polecenia.
Nie do końca kumam o co Ci chodzi:)
Pamiętaj,
Jeśli Twój problem został rozwiązany dopisz [b] [Rozw.] [/b]w tytule.
Projektowanie stron WWW: [url=http://www.miszewski.net.pl]www.miszewski.net.pl[/url]
mpier
Użytkownik
Posty: 1002
Rejestracja: 2005-10-01, 13:24
Lokalizacja: Blachownia||Cz-wa

Re: Jak umieścić : > plik w find (...) -exec (o tu)

Post autor: mpier »

Nie miszmaniac, nie o to chodzi, to swoją drogą, jak chesz możesz zamiast :[/b] wstawić echo i zrozumiesz. A później koniecznie ls.
miszmaniac
Moderator
Posty: 1510
Rejestracja: 2006-03-19, 12:00
Lokalizacja: Gdynia
Kontakt:

Re: Jak umieścić : > plik w find (...) -exec (o tu)

Post autor: miszmaniac »

W tym sęk.
Jest różnica między: echo > plik, a : > plik:

Kod: Zaznacz cały

# ls -all /syf
-rw-r--r--  1 root root 8227 2007-04-10 21:30 /syf
# echo > /syf
# ls -all /syf
-rw-r--r--  1 root root 1 2007-04-10 21:31 /syf
# : > /syf
# ls -all /syf
-rw-r--r--  1 root root 0 2007-04-10 21:31 /syf
Różnica = 1 spacja w przypadku echo, której nie ma jak zastosuje się ':'
Pamiętaj,
Jeśli Twój problem został rozwiązany dopisz [b] [Rozw.] [/b]w tytule.
Projektowanie stron WWW: [url=http://www.miszewski.net.pl]www.miszewski.net.pl[/url]
Awatar użytkownika
dozzie
Użytkownik
Posty: 855
Rejestracja: 2004-06-01, 13:15
Lokalizacja: Wrocław
Kontakt:

Re: Jak umieścić : > plik w find (...) -exec (o tu)

Post autor: dozzie »

miszmaniac pisze:"konstrukcja" działa jak trzeba, tyle że nie w wywołaniu exec, które jak napisał difrost oczekuje pliku, a nie polecenia.
Nie do końca kumam o co Ci chodzi:)
No to pora zapoznać się z man bash. I czytać do skutku, i manuala, i moją wypowiedź.
-zsh
#!/bin/bash
#!/usr/bin/perl -w
mpier
Użytkownik
Posty: 1002
Rejestracja: 2005-10-01, 13:24
Lokalizacja: Blachownia||Cz-wa

Re: Jak umieścić : > plik w find (...) -exec (o tu)

Post autor: mpier »

Echo (echo -n, dla niczego) wstaw do finda, potem ls {}. Rozumiesz?
ODPOWIEDZ