特定のツリー(たとえば/ var/ftpd)について、そのツリーの各フォルダーに、特定のツリー内のそのフォルダーの内容を含むハッシュファイルを作成するにはどうすればよいですか? sha1sumとsha512sumには再帰オプションがありません。
FWIWの解決策は次のとおりです。
user @ Host bin] $ cat mkshaindir #!/ bin/dash cd $ 1 sha512sum *> .sha512sum [user @ Host bin] $ find/var/ftpd -type d -print0 | xargs -0 -i mkshaindir {}
Mkshaindirは、私の目的では、別のコンポーネントであることに注意してください。新しいフォルダーまたは最近変更されたフォルダーのファイルのハッシュを作成する必要がある場合があるためです。
残りは読者の練習問題として残されています。
注:sha512sumは、ファイル以外の入力(ディレクトリ、ブロックファイルなど)についてSTDERRに文句を言います。
ハッシュファイルを保存するとハッシュが無効になるため、スクリプトはハッシュファイル自体を計算に含めないようにする必要があります。
さらに、リソースを節約するためにfind -exec
を使用することをお勧めします。
find /var/ftpd -type d -print0 ! -name .sha512sum -exec mkshaindir {} \;