Mam kilka katalogów, które mają wspólny katalog nadrzędny. W każdym katalogu znajdują się zwykłe pliki, ale nie ma innych podkatalogów. Coś takiego:
top/dir-1
top/dir-1/file-11
top/dir-1/file-12
top/dir-2
top/dir-2/file-21
top/dir-2/file-22
top/dir-3
top/dir-3/file-31
top/dir-3/file-32
Chciałbym uruchomić sha1sum
te pliki i uzyskać następujące pliki sum kontrolnych:
top/dir-1/sha1sum
top/dir-2/sha1sum
top/dir-3/sha1sum
top/dir-1/sha1sum
, na przykład, powinien zawierać tylko sumy kontrolne dla file-11
i file-12
:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx file-11
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy file-12
Próbowałem kilka poleceń obejmujących find
, sha1sum
, cd
, do for
pętli i podpowłok, ale bez większych sukcesów.
Ostatnia rzecz: zarówno katalogi, jak i pliki mogą mieć spacje w swoich nazwach, więc każde rozwiązanie powinno to wziąć pod uwagę.
Jakieś pomysły?
Edytować. W końcu spróbowałem z:
cd top
for i in *; do cd "${i}"; (sha1sum * > sha1sum); cd ..; done
Wydaje się, że działa, ale nadal nie jestem pewien, czy jest to właściwy sposób na wykonanie tego rodzaju pracy.
Odpowiedzi:
Lepiej jako:
źródło