Strona 1 z 1

[+] Bash, usuwanie i kopiowanie katalogu

: 12 sierpnia 2011, 20:59
autor: Michcio
Witam.
Jak mogę wykonać, żeby najpierw był usuwany katalog, a gdy zostanie usunięty to żeby wtedy był kopiowany do danej lokalizacji. Najlepiej, żeby można było to ująć w jednej linijce, ale niekonieczne.

Z góry dziękuję.

: 12 sierpnia 2011, 21:09
autor: mlodir
Podstawy podstaw. Wskazówka:

: 12 sierpnia 2011, 22:18
autor: Redhead
mlodir pisze:Podstawy podstaw. Wskazówka:
Chyba bardziej chodziło mu o pętlę.
[INDENT] IF warunek skasowany katalog = exit status 0
THEN kopiuj katalog tu i tam
ELSE rób coś innego[/INDENT]

Tak czy siak, bash się kłania.

: 13 sierpnia 2011, 08:50
autor: mlyczek

Kod: Zaznacz cały

rm -R <katalog> && cp -R <katalog2> <lokalizacja docelowa dla katalog2>
Operator && powoduje, że druga instrukcja wykona się dopiero gdy pierwsza skończy się powodzeniem (czyli zwróci kod 0).

: 13 sierpnia 2011, 09:13
autor: Michcio
Mam plik typu:

Kod: Zaznacz cały

rcon_password haslo
hostname "aha"
sv_password "ok"
Jak mogę za pomocą basha edytować ten plik i zmienić lub usunąć i od nowa napisać linijkę z hostname. Chodzi mi o to, że chcę po prostu zmienić wartość hostname. Może być też, żeby całkiem usuwało linijkę z hostname i mógłbym od nowa do pliku dopisać nią.

Edycja:
Dobrze, takie coś zrobiłem:

Kod: Zaznacz cały

sed -e '/hostname/d' server.cfg
Jak mogę zapisać ten wynik do server.cfg spowrotem?
Takie coś nie działą:

Kod: Zaznacz cały

sed -e '/hostname/d' server.cfg > server.cfg
Edycja2:
Zrobione. Temat do zamknięcia.

Kod: Zaznacz cały

test=`sed -e '/hostname/d' server.cfg`
echo "$test" > server.cfg

: 13 sierpnia 2011, 09:32
autor: Unit
Michcio pisze: EDIT2:
Zrobione. Temat do zamknięcia

Kod: Zaznacz cały

test=`sed -e '/hostname/d' server.cfg`
echo "$test" > server.cfg
Wymiana na pustą linię:

Kod: Zaznacz cały

perl -pi -e 's/hostname(.*)//g' server.cfg