Alternativa POSIX al pnetworkingicado -printf de GNU find

Me gustaría reescribir estos 2 commands para que usen solo switches que cumplan con POSIX :

find "$TARGET_DIR" -maxdepth 1 -type d -printf '(DIR) %f\n' find "$TARGET_DIR" -maxdepth 1 -type f -printf '%s %f ' -exec file -b {} \; 

-maxdepth 1 probablemente pueda replacese con -prune , pero -printf requerirá una networkingirección más complicada.

Tratar:

 find "$TARGET_DIR//." \( -name . -o -prune \) -type d -exec sh -c ' for f do f=${f%//.} f=${f%"${f##*[!/]}"} f=${f##*/} printf "(DIR) %s\n" "${f:-/}" done' sh {} + 

Sería más simple para el equivalente de -mindepth 1 -maxdepth 1 :

 find "$TARGET_DIR//." \( -name . -o -prune \) -type d -exec sh -c ' for f do printf "(DIR) %s\n" "${f##*/}" done' sh {} + 

Para el segundo:

 find "$TARGET_DIR//." ! -name . -prune -type f -exec sh -c ' for f do size=$(($(wc -c < "$f"))) printf %s "$size ${f##*/} " file -b -- "$f" done' sh {} +