Страница 1 из 1
как заставить find не искать в подкаталогах?
Добавлено: 2009-01-22 12:11:12
мимо проходил
вот собственно и вопрос...
З.Ы. и еще один маленький вопросик
как в csh к переменной прикрутить
*...что бы получилось типа
/dir1/subdir1/*
Код: Выделить всё
set tempfolder = /dir1/subdir1/
set alltempfolder = (${tempfolder}*)
не работает...

Re: как заставить find не искать в подкаталогах?
Добавлено: 2009-01-22 12:15:10
Alex Keda
про финд - для текущей директории есть ls, вообщето...
а про переменную - лучше расскажите - зачем вам это
Re: как заставить find не искать в подкаталогах?
Добавлено: 2009-01-22 12:20:18
мимо проходил
lissyara писал(а):про финд - для текущей директории есть ls, вообщето...
а про переменную - лучше расскажите - зачем вам это
про ls понял - спасибо
про переменную....

.....стыдно признатся...
Re: как заставить find не искать в подкаталогах?
Добавлено: 2009-01-22 12:26:21
Alex Keda
Re: как заставить find не искать в подкаталогах?
Добавлено: 2009-01-22 12:30:54
мимо проходил
lissyara писал(а):про финд - для текущей директории есть ls, вообщето...
а про переменную - лучше расскажите - зачем вам это
блин я не пойму как использовать ls что бы выводились только файлы текущего каталога(т.е. без директорий и файлов сабдиректорий).....если не трудно и не жалко черкните как это реализовывается...спасибо
Re: как заставить find не искать в подкаталогах?
Добавлено: 2009-01-22 12:36:56
мимо проходил
lissyara писал(а):
чем плох?
так он мочит папку...а мне надо тока файлы внутри...поэтому и
*
Re: как заставить find не искать в подкаталогах?
Добавлено: 2009-01-22 13:31:38
skeletor
Например так
Код: Выделить всё
#!/bin/sh
for i in `ls -A`
do
if [[ ! test -f "$i" ]]
then
.....
fi
done
Re: как заставить find не искать в подкаталогах?
Добавлено: 2009-01-22 14:22:20
hizel
man find
-width
-maxwidth
Re: как заставить find не искать в подкаталогах?
Добавлено: 2009-01-22 14:32:40
мимо проходил
hizel писал(а):man find
-width
-maxwidth
Re: как заставить find не искать в подкаталогах?
Добавлено: 2009-01-22 14:41:04
hizel
вах вах, а во freebsd то и нету, пардон
Re: как заставить find не искать в подкаталогах?
Добавлено: 2009-01-22 14:58:37
мимо проходил
skeletor писал(а):Например так
Код: Выделить всё
#!/bin/sh
for i in `ls -A`
do
if [[ ! test -f "$i" ]]
then
.....
fi
done
в папке которой производится поиск:
temp - папка
11.tgz - файл
12.tgz - файл
Код: Выделить всё
#!/bin/csh
foreach i (`ls -A`)
if ( ! `test -f $i` ) then
echo $i
endif
end
После применения, на экране:
Re: как заставить find не искать в подкаталогах?
Добавлено: 2009-01-22 18:18:02
zg
мимо проходил писал(а):как заставить find не искать в подкаталогах?
Код: Выделить всё
%man find | col -b | grep depth
-d Cause find to perform a depth-first traversal, i.e., directories
This option is equivalent to the -depth primary of IEEE Std
-depth Always true; same as the -d option.
-depth n
True if the depth of the file relative to the starting point of
-maxdepth n
line arguments. If any -maxdepth primary is specified, it
evaluated. -maxdepth 0 limits the whole search to the command
-mindepth n
than n. If any -mindepth primary is specified, it applies to the
-mindepth 1 processes all but the command line arguments.
find /usr/src -name CVS -prune -o -depth +6 -print
find /usr/src -name CVS -prune -o -mindepth 7 -print
maries -depth, -follow, and -xdev. These primaries always evaluated to
An example is the expression -print -o -depth. As -print always evalu-
ates to true, the standard order of evaluation implies that -depth would
The -mindepth and -maxdepth primaries are actually global options (as
%
мимо проходил писал(а):как в csh к переменной прикрутить *...что бы получилось типа /dir1/subdir1/*
Код: Выделить всё
%csh -c 'set MY_VAR = /etc/\*.local; echo "$MY_VAR"; echo $MY_VAR'
/etc/*.local
/etc/rc.local
%
Re: как заставить find не искать в подкаталогах?
Добавлено: 2009-01-22 19:23:13
Гость
мимо проходил писал(а):как заставить find не искать в подкаталогах?
find(1), опция
-prune. Например, удалить все backup-файлы от emacs-а
Код: Выделить всё
find . -name .ccache -prune -or -type f \( -name '*~' -or -name '#*#' \) -exec rm -f {} + -print
Или просто не искать в каталогах — -maxdepth 1, в подкаталогах -maxdepth 2.
Вывести все кроме директорий в /usr/src
мимо проходил писал(а):Код: Выделить всё
set tempfolder = /dir1/subdir1/
set alltempfolder = (${tempfolder}*)
не работает...

работает
Код: Выделить всё
> set tempfolder = /usr/src
> set alltempfolder = $tempfolder/*
> echo "$alltempfolder"
/usr/src/COPYRIGHT /usr/src/LOCKS /usr/src/MAINTAINERS /usr/src/Makefile ...
или можно добавить в alltempfolder все кроме папок
Код: Выделить всё
set tempfolder = /usr/src
foreach file ( $tempfolder/* )
if (! -d "$file") set alltempfolder = ($alltempfolder "$file")
end
Re: как заставить find не искать в подкаталогах?
Добавлено: 2009-01-23 0:57:33
Alex Keda
ф топку ваши емаксы, и руки оторвать тому кто придумал в периодик такое запихнуть:
Код: Выделить всё
hosting$ grep daily_clean_disks_files /etc/defaults/periodic.conf
daily_clean_disks_files="[#,]* .#* a.out *.core *.CKP .emacs_[0-9]*"
hosting$
у меня в таком формате кэш сайтов храниться - урл с решётками вместо слэшей...
я всё гадал - чё ж кэш не копиться-то )))
пока на непосещаемомо сайте не обратил внимание на дату изменения директории с кэшем

)
Re: как заставить find не искать в подкаталогах?
Добавлено: 2009-01-23 7:06:04
мимо проходил
Гость писал(а):
мимо проходил писал(а):
Код: Выделить всё
set tempfolder = /dir1/subdir1/
set alltempfolder = (${tempfolder}*)
не работает...
работает
Код: Выделить всё
> set tempfolder = /usr/src
> set alltempfolder = $tempfolder/*
> echo "$alltempfolder"
/usr/src/COPYRIGHT /usr/src/LOCKS /usr/src/MAINTAINERS /usr/src/Makefile ...
Вот мой код...он не работает.Что не так?
Код: Выделить всё
#!/bin/csh
set sfolder = ( /fs/MT/IN/ \
MT_IN \
/fs/MT/OUT/ \
MT_OUT \
)
set kol = $#sfolder
while ( $kol > 0 )
set file = $sfolder[$kol]
@ kol -= 1
set folder = $sfolder[$kol]
@ kol -= 1
.........................................................................................
set tempfolder = (${folder}temp/)
set allintempfolder = $tempfolder*
echo $tempfolder
echo $allintempfolder
......................................................................................
end
Пишет:
Пробывал и так:
Код: Выделить всё
set tempfolder = (${folder}temp)
set allintempfolder = $tempfolder/*
Таже песня...
Re: как заставить find не искать в подкаталогах?
Добавлено: 2009-01-23 9:35:12
zg
мимо проходил писал(а):Пробывал и так:
а читать не пробовал? хотя бы ман? ну или то, что пишут
мимо проходил писал(а):set: Нет соответствий
а с чего ты вдруг взял что, что-то не работает? если нет соотвествий шаблону, то чего он должен писать? а если это не шаблон, будь добр закрыть управляющие символы кавычками или экранированием
Re: как заставить find не искать в подкаталогах?
Добавлено: 2009-01-24 1:27:09
Гость
мимо проходил, у тя в именах файлов нет пробелов или прочих символов, на кои tcsh реагирует? Если есть, то rm -f $alltempfolder и rm -f "$alltempfolder" у тебя не пройдет. Придется делать в цикле
Код: Выделить всё
@ i = 1
while ( $i <= $#alltempfolder )
rm -f "$alltempfolder[$i]"
@ i++
end