Как отобразить “человекочитаемые” размеры файла в результатах находки?

Также необходимо использовать Subsystem sftp internal-sftp. Запретите все другие передачи, и ForceCommand internal-sftp.

Кроме того, как сказано в sshd_config странице справочника, каталог к chroot в должен принадлежать корню и не перезаписываемый кем-либо, который, вероятно, не имеет место для Вашего /home/%u.

Вероятно, Вы хотели бы:

sudo mkdir -p /jail/home
sudo mount --bind /home /jail/home

и имейте

ChrootDirectory /jail

Или ограничить пользователей их собственным каталогом, Вам было бы нужно связывание - монтируются для каждого пользователя:

cd /home
for u in */ do
  sudo mkdir -p "/jail/$u/home/$u"
  sudo mount --bind "$u" "/jail/$u/home/$u"
done

И имейте

ChrootDirectory /jail/%u
11
12.04.2014, 01:45
3 ответа
  • find[112985] не имеет таких сложных опций, как [112986]ls[112987]. Если вам нужна [112988]ls -h[112989], вам нужно вызвать [112990]ls[112991].
  • Я рекомендую использовать опцию [112992]-xdev[112993], чтобы избежать повторных обращений в другие файловые системы, что было бы бесполезно, если бы вас беспокоило дисковое пространство.
  • Если вы используете zsh в качестве оболочки, то вместо использования [112994]find[112995], вы можете использовать классификаторы глобуса. Ограничение размера файла простое: [112996]L[112997], за которым следует размер; размер может иметь опциональную единицу перед номером. Если вас не волнует максимальная глубина, вы можете использовать [112998]**/[112999] для рекурса в подкаталогах. Если вас волнует максимальная глубина, то это более громоздко, так как в шаблонах zsh-глобусов отсутствует способ выражения "максимум [113000]n[113001] вхождений". Чтобы избежать рекурсии кросс-устройств, используйте квалификатор глобуса [113002]d[113003]; вам нужно найти номер устройства, который вы можете отобразить с помощью команды [113004]stat[113005] под Linux ([113006]stat -c %d /[113007], чтобы отобразить только номер) или с помощью zsh собственной [113008]stat[113009] сборки (запустите [113010]zmodload zsh/stat[113011], чтобы загрузить его).

    10
    27.01.2020, 19:58

    Думаю, то, что вам нужно, больше похоже на следующее.

    find / -maxdepth 10 -size +100000 -exec ls -lah {} + 
    

    -exec позволяет выполнить команду, а {} заменяется результатом поиска. Наконец, + указывает find, что это конец команды, и это необходимо.

    1
    27.01.2020, 19:58

    Команда, которую вы пробуете, для меня читабельна. Однако вы можете воспользоваться файловой утилитой find, как показано ниже.

    find / -maxdepth 10 -size +100000 -exec sh -c 'file -b {} | grep text &>/dev/null' \; -print
    

    Другой способ сделать это - использовать приведенную ниже команду.

    du -BM / | sort -nr
    

    Приведенная выше команда выдаст вам файлы в сортировке по размеру.

    Если вы используете coreutils > 7.5, вы можете выполнить следующую команду для вывода списка файлов по размерам.

    du -ah / | grep -v "/$" | sort -h
    

    На моей машине не была доступна опция sort -h.

    Как вы указали в комментарии, ваш человекочитаемый формат файла должен иметь размер в kb, mb или gb. Я бы выбрал вторую команду, которую я опубликовал в качестве ответа. Вывод, который я получил, когда использовал ее в своей системе, следующий:

    du -BM /home/ramesh/chk1/ | sort -nr
    
    50M     /home/ramesh/chk1/
    21M     /home/ramesh/chk1/Hierarchical_Clustering_Working
    3M      /home/ramesh/chk1/checking_files
    1M      /home/ramesh/chk1/checking/checking2
    1M      /home/ramesh/chk1/checking/checking1
    1M      /home/ramesh/chk1/checking/asdf
    1M      /home/ramesh/chk1/checking
    
    4
    27.01.2020, 19:58

    Теги

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