Если ваш find
имеет printf
], распечатайте mtime в секундах, за которым следует имя файла, затем используйте sort
и, наконец, cut
:
find . -type f -printf "%T@\t%f\n" |
sort -k 1n -k 2 |
cut -f 2-
Поиск выводит TIMESTAMP FILENAME в каждой строке. Сортировка сначала сортирует отметки времени в числовом порядке. Если отметки времени равны, имя файла будет использоваться в крайнем случае. Вырезание удаляет отметку времени из вывода.
РЕДАКТИРОВАТЬ: Ваше решение на Perl работает, но я бы сделал это по-другому. Вот самый простой вариант:
find . -type f -print |
perl -lne 'print (((stat($_))[9]."\t".$_)' |
sort -k 1n -k 2 |
cut -f 2-
Нет необходимости преобразовывать время в строку и обратно. Просто выведите mtime stat в виде числового значения, как это сделал бы find.
В файле конфигурации vsftpd проверьте:
allow_writable_chroot = YES
ССЫЛКА НА МОЙ ОТВЕТ:
Обычно вы создаете две папки (может быть "in" и "out" или что угодно) и разрешить доступ к этим папкам, таким образом, пользователь не может писать в /, но может писать в этих папках.