você pode dividir por zero.
G=$(($((M=$((K=1024))*$K))*$K))
IF=./source_file SKIP=$((3*$M))
dd "if=$IF" "skip=$(($SKIP/($SKIP<$(wc -c <"$IF"))))"
Que seja avaliado como "$SKIP/1"
ou "$SKIP/0"
. Na verdade, não é dd
que retorna falso, mas o shell - o que significa que dd
nunca é invocado, mas wc
é claro. Também pode valer a pena ser executado em um subshell porque um shell não interativo provavelmente sairá do contrário.
Este também é um exemplo básico de bs=1
- você provavelmente teria que fatorar por tamanho de bloco na maioria dos casos ou usar o sinalizador skip-bytes do GNU.