2016-03-21 2 views
1

OSを複数のbashのコマンドを使用するには3.5は、どのように単一の行に

私はそれらのステータスとフットプリントのための別のコマンドを使用して、ファイルのリストを取得するには、以下の2つのコマンドがあります。 私はそれらを1行にまとめる方法を見つけたいと思っています。

ここに私が言及したコマンドがあります。

  1. find "$PWD" -type f ! -iname '*thumbs.db*' -print0 | xargs -0 stat -c "%y %s %n"

  2. find "$PWD" -type f -print0 | xargs -0 sha1sum -b

答えて

1

この作品は、ウィル? xargsmanを実行します。

find $PWD -type f ! -iname '*thumbs.db*' -print0 | xargs -0 -I '{}' sh -c 'stat --printf "%y %s %n " {} ; sha1sum -b {}' 

ファイル名をしたくない場合は、二回繰り返し:

find $PWD -type f ! -iname '*thumbs.db*' -print0 | xargs -0 -I '{}' sh -c 'stat --printf "%y %s %n " {} ; sha1sum -b {} | cut -d\ -f1' 

d\cutにおけるコマンドの後に2つの空白が必要です。

+0

それは動作しますが、結果をリストシートとしてまとめませんでした。 – NNOPP

0

findコマンド自体で-execを使用することができます。

find $PWD -type f ! -iname '*thumbs.db*' -exec stat -c "%y %s %n" {} \; -exec sha1sum -b {} \; 
+0

ありがとう、これは素晴らしい作品です。 – NNOPP