Wie finde und printf funktioniert in bash script

Meine Umgebung: Linux Redhat, Bash 3.5

Ich habe ein Bash-Skript erstellt, um alle Dateien in Unterverzeichnissen mithilfe des folgenden Skripts aufzulisten.

#!/bin/bash
for i in $( find . -maxdepth 1 -mindepth 1 -type d ); do
    b=$(echo $i | awk '{print substr($1,3); }' )
    find $i -type f > $i/$b.txt
done

Ich will hinzufügensha1sum Ich habe mein Skript wie unten gezeigt bearbeitet.

#!/bin/bash
for i in $( find . -maxdepth 1 -mindepth 1 -type d ); do
    b=$(echo $i | awk '{print substr($1,3); }' )
    find $i -type f ! -iname '*thumbs.db*' -printf "%b:" -exec sha1sum -b {} \; > ./$i/$b.txt
done

Der zweite Code ist mit einem Fehler unter @ fehlgeschlag

No such file or directory

Antworten auf die Frage(2)

Ihre Antwort auf die Frage