как заставить find не искать в подкаталогах?

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
мимо проходил
проходил мимо

как заставить find не искать в подкаталогах?

Непрочитанное сообщение мимо проходил » 2009-01-22 12:11:12

вот собственно и вопрос...

З.Ы. и еще один маленький вопросик
как в csh к переменной прикрутить *...что бы получилось типа /dir1/subdir1/*

Код: Выделить всё

set tempfolder = /dir1/subdir1/
set alltempfolder = (${tempfolder}*) 
не работает... :unknown:

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: как заставить find не искать в подкаталогах?

Непрочитанное сообщение Alex Keda » 2009-01-22 12:15:10

про финд - для текущей директории есть ls, вообщето...
а про переменную - лучше расскажите - зачем вам это
Убей их всех! Бог потом рассортирует...

мимо проходил
проходил мимо

Re: как заставить find не искать в подкаталогах?

Непрочитанное сообщение мимо проходил » 2009-01-22 12:20:18

lissyara писал(а):про финд - для текущей директории есть ls, вообщето...
а про переменную - лучше расскажите - зачем вам это
про ls понял - спасибо
про переменную.... :smile: .....стыдно признатся...

Код: Выделить всё

rm alltempfolder

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: как заставить find не искать в подкаталогах?

Непрочитанное сообщение Alex Keda » 2009-01-22 12:26:21

чем плох?
Убей их всех! Бог потом рассортирует...

мимо проходил
проходил мимо

Re: как заставить find не искать в подкаталогах?

Непрочитанное сообщение мимо проходил » 2009-01-22 12:30:54

lissyara писал(а):про финд - для текущей директории есть ls, вообщето...
а про переменную - лучше расскажите - зачем вам это
блин я не пойму как использовать ls что бы выводились только файлы текущего каталога(т.е. без директорий и файлов сабдиректорий).....если не трудно и не жалко черкните как это реализовывается...спасибо

мимо проходил
проходил мимо

Re: как заставить find не искать в подкаталогах?

Непрочитанное сообщение мимо проходил » 2009-01-22 12:36:56

lissyara писал(а): чем плох?
так он мочит папку...а мне надо тока файлы внутри...поэтому и *

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: как заставить find не искать в подкаталогах?

Непрочитанное сообщение skeletor » 2009-01-22 13:31:38

Например так

Код: Выделить всё

#!/bin/sh

for i in `ls -A` 
do
   if [[ ! test -f "$i" ]]
   then
      .....
   fi
done

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: как заставить find не искать в подкаталогах?

Непрочитанное сообщение hizel » 2009-01-22 14:22:20

man find
-width
-maxwidth
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.


Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: как заставить find не искать в подкаталогах?

Непрочитанное сообщение hizel » 2009-01-22 14:41:04

вах вах, а во 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
После применения, на экране:

Код: Выделить всё

temp
11.tgz
12.tgz
temp
11.tgz
12.tgz

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: как заставить find не искать в подкаталогах?

Непрочитанное сообщение zg » 2009-01-22 18:18:02

мимо проходил писал(а):как заставить 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

Код: Выделить всё

find /usr/src/ \! -type d -maxdepth 1
мимо проходил писал(а):

Код: Выделить всё

set tempfolder = /dir1/subdir1/
set alltempfolder = (${tempfolder}*) 
не работает... :unknown:
работает

Код: Выделить всё

> 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

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: как заставить find не искать в подкаталогах?

Непрочитанное сообщение Alex Keda » 2009-01-23 0:57:33

ф топку ваши емаксы, и руки оторвать тому кто придумал в периодик такое запихнуть:

Код: Выделить всё

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}*) 
не работает... :unknown:
работает

Код: Выделить всё

> 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: Нет соответствий
Пробывал и так:

Код: Выделить всё

set tempfolder = (${folder}temp)
set allintempfolder = $tempfolder/*
Таже песня...

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: как заставить find не искать в подкаталогах?

Непрочитанное сообщение zg » 2009-01-23 9:35:12

мимо проходил писал(а):Пробывал и так:
а читать не пробовал? хотя бы ман? ну или то, что пишут :smile:
мимо проходил писал(а):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