find "$1" -name "*.html" -print0 | sort -zn | xargs -r -0 -n 1 sh -c '
echo "Dumping file: $2" >> "$1"; w3m "$2" >> "$1" 2>&1
' sh "$2"
Еще одна оптимизация может быть:
find "$1" -name "*.html" -print0 | sort -zn | xargs -r -0 -n 1 sh -c '
exec 1>> "$1" 2>&1
echo "Dumping file: $2"
w3m "$2"
' sh "$2"
, так как обе команды echo
и w3m
делают одно и то же со своими файловыми дескрипторами 1 и 2, поэтому лучше сделать это вначале в одном месте.
Вы также можете избежать запуска одного sh
для каждого файла с помощью:
find "$1" -name "*.html" -print0 | sort -zn | xargs -r -0 sh -c '
out=$1; shift
for file do
echo "Dumping file: $file"
w3m "$file"
done >> "$out" 2>&1
' sh "$2"
В дополнение к strace
рассмотрим также sysdig
. Sysdig чем-то похож на системную -версию strace
. Дополнительную информацию можно найти на странице Sysdig на Github