On Mon, 15 Jan 2007, Dmitry-T wrote:
Захотел сделать архивы сервера более доступными пользователям. Открыл их
по самбе, кодировку на сервере сделал cp1251, но гигабайт на 30 архив
для пользователей бесполезен - не могут с ним работать через total
commander. Пришлось раздробить архивы, запаковать по подкаталогам. С
/home всё прекрасно получилось, но есть ещё общая информация, а тут
подкаталоги в именах имеют пробелы и for их непонимает.
Банальный цикл:
for dirName in `ls /mnt/info`
do
tar -czf "/mnt/backup/1day/$dirName.tgz" "/mnt/info/$dirName"
done
Пробовал и `ls -Q` но "for" всё равно разбивает подкаталоги. Например для
подкаталога "Отдел учетов" получаются пустые Отдел.tgz и учётов.tgz. Может
есть возможность это обойти?
Вообще-то
apt-get install abs-guide
А там читать:
# In bash you can change the input field separator to handle
# filenames with blank space in them. It's best used in a
# script like this: IFS=$'\t\n'
# This changes IFS to only trigger on tabs and newlines.
так что IFS=$'\t\n' в начале скрипта спасёт :)
Юра
p.s. man bash на предмет IFS тоже помогает