Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Witam, jestem początkująca w bashu i nie wiem jak dokończyć polecenie:
find $dir -type f -exec md5sum {} \; >> .................
Mam drzewo katalogów zwane Katalog i jego kopię, w której katalogi mają tą samą nazwę oprócz korzenia, który nazywa się Katalog.md5
I teraz tworzę powyższym findem sumy md5 dla każdego pliku w drzewie Katalog i chcę je zapisać w odpowiednich plikach w drzewie Katalog.md5
Może mały przykład, bo to brzmi conajmniej chaotycznie :)
md5 z pliku Katalog/katalog_drugi/plik chciałabym zapisać w: Katalog.md5/katalog_drugi/plik
Czy ktoś wie jak mogę to wykonać?
Dzięki za wszystkie wskazówki :)
Offline
dir="Katalog" find $dir -type d | sed "s/^$dir/$dir.md5/g" | xargs mkdir -p for i in $(find $dir -type f); do NEW=$(echo "$i" | sed "s/^$dir/$dir.md5/g") md5sum $i | awk '{print $1}' > $NEW done
Taki potworek wyszedł :)
1. przypisujemy do zmiennej dira nazwe naszego katalogu
2. tworzymy nową strukturę katalogów
2. dla kazdego pliku liczymy sume i wsadzamy w odpowiednie miejsce
Ostatnio edytowany przez megabajt (2013-05-15 22:21:15)
Offline
Przy tym mój "pocztek" wydaje się bardziej niż skromny :)
Dziękuje bardzo za pomoc i pozdrawiam!
Offline
Ja bym tylko nieśmiało zwrócił uwagę, że gdyby trafił si eplik ze spacja w nazwie, to for z niego zrobi dwa argumenty.
Bezpieczeniej w takim wypadku zamiast for użyć
find /cośtam -type f | while read plik; do....
żeby łapał całe nazwy, niezależnie od ewentualnych spacji.
Ostatnio edytowany przez Jacekalex (2013-05-17 15:26:14)
Offline
Strony: 1