2016-03-21 9 views
1

OS verwenden. Ich möchte den Weg finden, sie in einer Linie zu kombinieren.Wie mehr bash Befehle in einzelnen Linien

Hier sind meine erwähnten Befehle.

  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

Antwort

1

Wird diese Arbeit? Tun Sie eine man auf xargs.

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

Wenn Sie nicht der Dateiname zweimal wiederholt werden soll:

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

Es wurden 2 Leerzeichen nach d\ in cut Befehl sein muss.

+0

es funktioniert, aber nicht das Ergebnis als Listenblatt zusammen. – NNOPP

0

Sie können dies mit -exec im Befehl find selbst tun.

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

Danke das funktioniert super. – NNOPP