Альтернатива POSIX-printf предикату находки GNU

tcpdump может только показать пакеты, которые это видит. И если Вы не используете свое пи малины в качестве прокси (или Вы живете в 90-х и используете концентратор), Ваше пи малины не будет видеть пакета, который Ваш ноутбук передает к чему-либо еще, чем пи малины.

6
29.03.2017, 14:58
1 ответ

Попробуйте:

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 {} +

Было бы проще для эквивалента -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 {} +

Для второго:

find "$TARGET_DIR//." ! -name . -prune -type f -exec sh -c '
  for f do
    size=$(($(wc -c < "$f") +0)) || continue
    printf %s "$size ${f##*/} "
    file -b -- "$f"
  done' sh {} +
1
27.01.2020, 20:30

Теги

Похожие вопросы