opensshにパイプする前にfind出力をソートする

opensshにパイプする前にfind出力をソートする

このコマンドを使用して再帰的に生成しています。SHA-512ハッシュディレクトリ階層の各ファイルに対して、次の操作を行います。

find . -type f -exec openssl sha512 {} \;

ハッシュを生成する前に、ファイルをアルファベット順にソートしたいと思います。

次のように使用できますsort

find . -type f | sort

しかし、ソートされたファイルのリストをopenssl

find . -type f | sort | openssl sha512

しかし、これは出力全体の単一のハッシュを生成しますsortが、私は各個々のファイルのハッシュを望んでいます。

findいくつかのbashのバージョンにはオプション-s("findアルファベット順にナビゲートされたファイル階層が発生")が含まれていますが、私のfind

助けてくれてありがとう!

ベストアンサー1

xargsあなたが望むものを得るためにそれを使用することができます。

find . -type f -print0 | sort -z | xargs -0 -n1 openssl sha512

この-n1オプションは、xargsにコマンドに1つの引数のみを許可するように指示しますopenssl-print0およびオプションは、ファイル名に「問題」文字(挿入された改行文字など)が含まれていると-zパイプが壊れるのを防ぎます。-0

おすすめ記事