Для файлов ls -l file
показывает (среди прочего )размер file
в байтах, а du -k file
показывает пространство, занимаемое file
на диске (в единицах по 1 КБ. = 1024 байта ). Поскольку дисковое пространство выделяется блоками, размер, указанный в du -k
, всегда немного больше, чем размер, указанный в ls -kl
(, который совпадает с ls -l
, но в единицах 1 КБ ).
Для каталогов ls -ld dir
показывает (среди прочего )размер списка имен файлов (вместе с количеством атрибутов )файлов и подкаталогов в dir
. Это просто список имен файлов, а не содержимое файлов или подкаталогов. Таким образом, этот размер увеличивается, когда вы добавляете файлы в dir
(, даже если файлы пусты ), но остается неизменным, когда увеличивается один из файлов в dir
.
Однако, когда вы удаляете файлы из dir
, пространство из списка не освобождается сразу, а записи для удаленных файлов помечаются как неиспользуемые и позже перерабатываются (, на самом деле это зависит от реализации -, но то, что я описал, в значительной степени является универсальным поведением в наши дни ). Вот почему вы можете не увидеть никаких изменений в выводе ls -ld
при удалении файлов намного позже, если вообще когда-либо.
Наконец, du -ks dir
показывает (оценку )места на диске, занимаемого всеми файлами в dir
вместе со всеми файлами во всех подкаталогах dir
, в 1 КБ = 1024 байтовые единицы. Принимая во внимание описание выше, это не имеет никакого отношения к выводу ls -kld dir
.
Возможно, вы захотите изучить настройку command="whatever"
в /etc/ssh/sshd_config
для всех пользователей. Я не проверял это, но использование command="/bin/bash.profile"
может дать вам то, что вы хотите.
Параметр конфигурации ForceCommand
в sshd_config
— это то, что вам нужно. Я рекомендую вам установить ваше приложение там, а не зависеть от поведения .profile
.