nixp.ru v3.0

23 января 2017,
понедельник,
17:57:23 MSK

DevOps с компанией «Флант»
anonymous написал 4 сентября 2005 года в 23:07 (1893 просмотра) Ведет себя неопределенно; открыл 1814 темы в форуме, оставил 5575 комментариев на сайте.

приветствую о великии гуру программирования и унихса… и программирования в унихсе!

передо мной встала такая проблемма:

необходимо сделать скрипт который бы ходил по папкам и делал бы мне отчетик… НО у меня получается сделать только один уровень вложенности брождения… помогите plzz кто чем может. (гугл внятных ответов мне не дал ): )

зы: заранее пасиба.

Uncle Theodore

Ну, что-то типа

#!/bin/bash
recsearch()
{
for i in `ls .`
do
if [ -d $i ]
then
echo "Going into directory $i"
cd $i
recsearch
cd ..
elif [ -f $i ]
then
echo "insert commands for processing a regular file $i"
fi
done
}
recsearch

Должно помочь отцу русской демократии…

Good Luck,

UT

Genie

сам баш для этого мало приспособлен, это да.

а вот некоторая другая программка — куда как более приспосболена.

особенно если это касается обхода дерева каталогов.

я про find. почитать вдумчиво её описание не так уж и вредно. может при её использовании несколько «линеаризуется» задача?

rgo

очень рекомендую читать сначала не `man find’, а начать изучение find с info 'finding files'

кстати, в этом мануале любопытный пример есть — скрипт запускаемый из cron:

find / -name '#*' -atime +7 -print | xargs rm

и «эксплоит» этого скрипта, который вроде как должен заставить cron удалить /u/joeuser/.plan

eg$ mkdir '#
'
eg$ cd '#
'
eg$ mkdir u u/joeuser u/joeuser/.plan'
'
eg$ echo > u/joeuser/.plan'
/#foo'
eg$ cd ..
eg$ find . -name '#*' -print | xargs echo
./# ./# /u/joeuser/.plan /#foo

пример из раздела «Unsafe File Name Handling».

так, вот вопросик у меня, а как же всё-таки создать файл содержащий '/' в имени. согласно этому эксплоиту не получается :(

Genie
вопросик у меня, а как же всё-таки создать файл содержащий '/' в имени.

touch file\/with\ slash_and.space

ps: у find и xargs есть ключики для подобных имён…

rgo
Genie
touch file\/with\ slash_and.space



rgo$ touch file\/with\ slash_and.space
touch: невозможно выполнить touch для `file/with slash_and.space': No such file or directory
sas
Genie
touch file\/with\ slash_and.space

ps: у find и xargs есть ключики для подобных имён…

It is not possible at all to have '/' (slash) as a part of the filename because '/' is used to represent the top of the directory tree, and as a separator in the pathnames.

rgo

ага, я понял наконец как это работает :) слеша не надо. Пока набирал в консоли ошибку допустил

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.