LINUX.ORG.RU

FTP-клиент, который может показать полный список всех директорий и файлов на сервере. Есть ли такой?


0

0

Здравствуйте!


Озадачился сейчас проблемой. Нужно получить листинг всего содержимого FTP-сервера. То есть, нужен список всех директорий и файлов в них.

И оказалось, что ни один FTP-клиент не имеет такой функции. Пробовал filezilla 3.0.0beta7, gftp 2.0.18, встроенный в MC ftp-клиент.

Рекурсивных FTP команд не нашел, команды получения списка содержимого каталога работают только в указанном (текущем) каталоге.


Вопрос. Как получить полный список содержимого FTP сервера? Да, на сервере есть много файлов с русскими именами в кодировке cp1251, нужно нормально видеть имена этих файлов в обязательном порядке.


Ответ на: комментарий от kostian

Мда, спасибо, попробую. Только ключей у этой команды не расписано.

-----8<----- lftp :~> help ls Использование: ls [<аргументы>] Вывести список файлов на сервере. Вы можете направить вывод этой команды в файл или через программный канал во внешнюю программу. По-умолчанию, вывод команды ls кэшируется; чтобы увидеть обновленный список файлов, используйте команды `rels' или `cache flush'. Смотри также `help cls'. -----8<-----

Тогда смотрю

-----8<----- lftp :~> help cls Использование: [re]cls [параметры] [путь/][шаблон] List remote files. You can redirect output of this command to file or via pipe to external command.

-1 - single-column output -B, --basename - show basename of files only --block-size=SIZ - use SIZ-byte blocks -d, --directory - list directory entries instead of contents -F, --classify - append indicator (one of /@) to entries -h, --human-readable - print sizes in human readable format (e.g., 1K) --si - likewise, but use powers of 1000 not 1024 -k, --kilobytes - like --block-size=1024 -l, --long - use a long listing format -q, --quiet - don't show status -s, --size - print size of each file --filesize - if printing size, only print size for files -i, --nocase - case-insensitive pattern matching -I, --sortnocase - sort names case-insensitively -D, --dirsfirst - list directories first --sort=OPT - "name", "size", "date" -S - sort by file size --user, --group, --perms, --date, --linkcount, --links - show individual fields --time-style=STYLE - use specified time format

By default, cls output is cached, to see new listing use `recls' or `cache flush'.

The variables cls-default and cls-completion-default can be used to specify defaults for cls listings and completion listings, respectively. For example, to make completion listings show file sizes, set cls-completion-default to "-s".

Tips: Use --filesize with -D to pack the listing better. If you don't always want to see file sizes, --filesize in cls-default will affect the -s flag on the commandline as well. Add `-i' to cls-completion-default to make filename completion case-insensitive. -----8<-----

ключа -R нет. Как вы о нем (-R) узнали?

xintrea
() автор топика
Ответ на: комментарий от kostian

Мда, спасибо, попробую. Только ключей у этой команды не расписано.

-----8<-----
lftp :~> help ls
Использование: ls [<аргументы>]
Вывести список файлов на сервере. Вы можете направить вывод этой
команды в файл или через программный канал во внешнюю программу.
По-умолчанию, вывод команды ls кэшируется; чтобы увидеть обновленный
список файлов, используйте команды `rels' или `cache flush'.
Смотри также `help cls'.
-----8<-----

Тогда смотрю

-----8<-----
lftp :~> help cls
Использование: [re]cls [параметры] [путь/][шаблон]
List remote files. You can redirect output of this command to file
or via pipe to external command.

-1 - single-column output
-B, --basename - show basename of files only
--block-size=SIZ - use SIZ-byte blocks
-d, --directory - list directory entries instead of contents
-F, --classify - append indicator (one of /@) to entries
-h, --human-readable - print sizes in human readable format (e.g., 1K)
--si - likewise, but use powers of 1000 not 1024
-k, --kilobytes - like --block-size=1024
-l, --long - use a long listing format
-q, --quiet - don't show status
-s, --size - print size of each file
--filesize - if printing size, only print size for files
-i, --nocase - case-insensitive pattern matching
-I, --sortnocase - sort names case-insensitively
-D, --dirsfirst - list directories first
--sort=OPT - "name", "size", "date"
-S - sort by file size
--user, --group, --perms, --date, --linkcount, --links
- show individual fields
--time-style=STYLE - use specified time format

By default, cls output is cached, to see new listing use `recls' or
`cache flush'.

The variables cls-default and cls-completion-default can be used to
specify defaults for cls listings and completion listings, respectively.
For example, to make completion listings show file sizes, set
cls-completion-default to "-s".

Tips: Use --filesize with -D to pack the listing better. If you don't
always want to see file sizes, --filesize in cls-default will affect the
-s flag on the commandline as well. Add `-i' to cls-completion-default
to make filename completion case-insensitive.
-----8<-----

ключа -R нет. Как вы о нем узнали?

xintrea
() автор топика
Ответ на: комментарий от xintrea

$ man ls | grep recursive -R, --recursive list subdirectories recursively

anonymous
()
Ответ на: комментарий от kostian

Если есть ls -R, то любой дурак^Wклиент справится, а вот конкретно в lftp есть команда find. Он вообще под bash косит как только может.

Teak ★★★★★
()

> Вопрос. Как получить полный список содержимого FTP сервера? Да, на сервере есть много файлов с русскими именами в кодировке cp1251, нужно нормально видеть имена этих файлов в обязательном порядке.

Попробуй curlftpfs (при монтировании позволяет указать кодировку). И потом find, ls -R или updatedb с locate.

anonymous
()
Ответ на: комментарий от Deleted

Помнится были времена, когда на всяком приличном сервере, в корне лежал файл ls-R, с соответствующим содержимым.

sdio ★★★★★
()
Ответ на: комментарий от sdio

На который можно надеяться только в порядке джентльменского соглашения. :) Хотя в принципе конечно это было правильно.

Teak ★★★★★
()

Предлагаю подмонтировать ftp сервак как файловую систему и запустить
ls -l

монтировать этой fuse-тулзой, кажется curlftpfs.

ierton ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.