2016-03-21 64 views
1

操作系統:Linux RedHat的如何使用多個bash的命令在單個線路

擊:3.5

我有下面兩個命令來獲得與他們的地位和足跡另一個命令的文件列表。 我想找到將它們組合在一條線上的方法。

這是我提到的命令。

  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

將這項工作?在xargs上執行man

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