Как проходить каталоги и подкаталоги -начиная с каталога c, где c задается в качестве входного аргумента для вашего скрипта обхода

Вы передаете клиентам локальный маршрут LAN; поэтому они могут достичь его.

0
01.02.2021, 18:58
2 ответа

Ваши требования могут быть удовлетворены одной findкомандой:

$ find path/to/dir \( -type d -o \( -type f -a -size +1024k \) \) -printf '%s %p\n'

Это говорит:

  • Выберите каталоги(-type d)
  • ИЛИ(-o)
  • (Выберите файлы(-type f)И(-a)размером более 1024 КБ(-size +1024k))
  • Выполнить форматированную печать(-printf)размера файла в байтах, пути к файлу и новой строки(%s %p\n)

Круглые скобки используются для группировки, но должны быть экранированы обратной косой чертой, чтобы предотвратить их интерпретацию оболочкой.

Дальнейшие пояснения приведены в man find.

При этом печатаются файлы размером более 1024 КБ, а не точно 1024 КБ.

0
18.03.2021, 22:33

bashне лучший выбор оболочки для этого. Сzsh:

#! /bin/zsh -

zmodload zsh/stat || exit

(( $# != 0 )) || set.

files=($^argv/**/*(ND/,.LK+1))
(( $#files == 0 )) ||
  stat -Ln +size -- $files

Здесь LK+1выбирает файлы (обычные файлы только с .), размер которых строго больше 1 КБ (1024 байта ). Для файлов размером более 1 КБ (1000 байт )замените его на L+1000.

1
18.03.2021, 22:33

Теги

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