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!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2013-05-15 20:45:05

  solka90 - Nowy użytkownik

solka90
Nowy użytkownik
Zarejestrowany: 2013-05-15

[Bash] Zapisywanie wyniku finda do plików

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

 

#2  2013-05-15 22:20:46

  megabajt - Użytkownik

megabajt
Użytkownik
Skąd: Wrocław
Zarejestrowany: 2012-03-07

Re: [Bash] Zapisywanie wyniku finda do plików

Kod:

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

 

#3  2013-05-17 13:52:38

  solka90 - Nowy użytkownik

solka90
Nowy użytkownik
Zarejestrowany: 2013-05-15

Re: [Bash] Zapisywanie wyniku finda do plików

Przy tym mój "pocztek" wydaje się bardziej niż skromny :)

Dziękuje bardzo za pomoc i pozdrawiam!

Offline

 

#4  2013-05-17 15:24:27

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: [Bash] Zapisywanie wyniku finda do plików

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ć

Kod:

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)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)