#1 20.08.06 12:24
cd -
Требуется перейти в папку "-". Как?
В баше обрабатываются папки и файлы, в рекурсии. Как только встречается папка, начинающаяся на "минус" или просто "-", так cd начинает ругаться. Попробовал с консоли перейти в эту папку по cd - тоже ругается :) (хорошо, хоть, не перешел, а то крышу б напрочь сорвало). Вопрос - как правильно записать команду cd в следующем коде:
Код: bash:
for i in `ls -1`; do if [ -d $i ]; then echo Chmoding folder: $i chmod 775 $i echo ***Enter folder: $i*** cd $i for j in `ls -1`; do # echo Chmoding: $j chmod 664 $j done /home/fixw cd .. echo ***Exit folder: $i*** fi done
Offline
#4 21.08.06 10:10
Re: cd -
asp, ты осуществляешь переход в папку из текущей директории...
вот мой маленький скрипт, который заходит спокойно в папки с именами, начинающихся с минуса:
Код: bash:
#!/bin/bash func () { cd ./"$1" for i in * do [ -d "$i" -a -r "$i" ] && echo "-> $i" && func "$i" done for i in .* do [ -d "$i" -a -r "$i" ] && [ "$i" != "." -a "$i" != ".." ] && echo "-> $i" && func "$i" done cd .. } func "$1"
т.е. главное указать явно ./
ну, и в кавычки все же стоит взять, т.к. имена папок могут содержать и пробелы
P.S. добавил еще перебор "скрытых" папок
P.P.S. @Роман Петров: ниче, что я так нагло ответы к заданиям выкладываю? :)
Исправлено Jaguar (21.08.06 10:27)
Offline
#7 21.08.06 13:48
Re: cd -
хм... ну, у тебя тут далеко не рекурсия...
логика ствоего скрипта следующая:
1. бирется список файлов и папок в текущей директории
2. в цикле ты проходишь этот список и заходишь только в папки (файлы текущей директории не обрабатываются)
3. выставляешь для папок текущей директории права 775 и заходишь в каждую по очереди
4. как только заходишь в папку (см. п.3) получаешь список файлов и папок в ней и выставляешь для всего (заметь, для ВСЕГО) права 664
5. выполняется /home/fixw (наверное какой-то скрипт или программа)
6. выходишь из папки (см. п.3)
как быть с теми папками, что в других папках? т.е. у тебя получается всего на два уровня скрипт работает... тот скрипт, что я дал, проходит по всему дереву каталогов... дописать туда действия и проверки дополнительные и все... и это настоящая рекурсия, а не двойной цикл, который ты назвал "рекурсией"
Исправлено Jaguar (21.08.06 13:51)
Offline

