#!/bin/sh
# Начальный каталог
START_DIR="/var/www/pub"
cd $START_DIR
# Ищем все подкаталоги (и рекурсивно тоже)
find . -type d -print > .tmp.alldirs
# Пока есть необойдённый каталог
while read CURDIR
do
# Переходим в него
cd "$CURDIR"
# Убираем точку и следж
HTMLDIR='/'`echo $CURDIR | cut -c3-`
# Получаем все подкаталоги в текущем каталоге
ls -lQ|grep "^d"|cut -d\" -f2|sort > .tmp.dirs
# Получаем все обычные файлы в текущем каталоге
ls -lQ|grep "^-"|cut -d\" -f2|sort > .tmp.files
echo '<html>' > .public_index.html
# Ссылка на предыдущий каталог
if [ "$HTMLDIR" != "/" ];
then
HTMLFILE=`echo "$HTMLDIR/../.public_index.html"|tr -s "/"`
echo '[url="'$HTMLFILE'"]..[/url]
' >> .public_index.html;
fi
# Обрабатываем все подкаталоги в текущем каталоге
while read CURFILE
do
HTMLFILE=`echo "$HTMLDIR/$CURFILE/.public_index.html"|tr -s "/"`
echo '[url="'$HTMLFILE'"]'$CURFILE'[/url]
' >> .public_index.html;
done < .tmp.dirs
# Обрабатываем все файлы в текущем каталоге
while read CURFILE
do
HTMLFILE=`echo "$HTMLDIR/$CURFILE"|tr -s "/"`
echo '[url="'$HTMLFILE'"]'$CURFILE'[/url]
' >> .public_index.html;
done < .tmp.files
echo '</html>' >> .public_index.html
rm -f .tmp.dirs
rm -f .tmp.files
# Возвращаемся к отправной точке
cd "$START_DIR"
done < .tmp.alldirs
rm -f .tmp.alldirs
exit 0;
Посоветуйте индексатор для папок на сервере.
Надо сделать, чтобы доступ был не только по ftp но и по http. (что-нибудь вроде такого, как на linuxcenter.ru)
Самому писать ломает, хотя наверное самое простое :)
Посоветуйте какой-нибудь простенький готовый продукт. Чтобы запускать его раз в день в cronе, и он индексировал папку со всеми вложенными папками и выдавал ссылку, выводил размер, дату создания и т. д.
Сервер на линуксе.
А может сделать real-time wrapper, например с помощью FTP функций на PHP?
Код:
Найти готового нормального не удалось. Одна прога с папками больше 1000 файлов не работает, другая русский язык через пень-колоду воспринимает, в общем проще самому оказалось написать :)
На сервере конечно жк полно папок и файлов с русскими именами.
В Firefox ссылки вида:
http://1.2.3.4/Music/Русская/.public_index.html
работают нормально, а вот в IE не работают :(
Как я понял, дело в том, что русские символы в ссылке.
Что делать? На сервере переименовывать папки нельзя.
Цитата:
Originally posted by ksicom
Возникла проблема.
На сервере конечно жк полно папок и файлов с русскими именами.
В Firefox ссылки вида:
http://1.2.3.4/Music/Русская/.public_index.html
работают нормально, а вот в IE не работают :(
Как я понял, дело в том, что русские символы в ссылке.
Что делать? На сервере переименовывать папки нельзя.
Возникла проблема.
На сервере конечно жк полно папок и файлов с русскими именами.
В Firefox ссылки вида:
http://1.2.3.4/Music/Русская/.public_index.html
работают нормально, а вот в IE не работают :(
Как я понял, дело в том, что русские символы в ссылке.
Что делать? На сервере переименовывать папки нельзя.
urlencode(), urldecode()