1 |
Hi!
|
2 |
|
3 |
On Fri, Jun 02, 2006 at 09:44:04PM +0400, Victor Skurihin wrote:
|
4 |
> Вот для решения сабжа попробовал использовать find, |
5 |
> find ./ -type f -regex ".* .*" -exec mv {} `echo {}|tr ' ' '_'` \; |
6 |
> но не добился желаемого: |
7 |
|
8 |
Во-первых в bash и find regexp-ы по-проще, а-ля как в DOS, так что не
|
9 |
".* .*"
|
10 |
а
|
11 |
"* *"
|
12 |
|
13 |
Во-вторых комбинация `...` выполнится один раз при запуске команды и find
|
14 |
получит параметрами её результат - судя по всему ты хотел чтобы эта
|
15 |
команда выполнялась для каждого файла, т.е. не
|
16 |
find ... -exec ... `...` \;
|
17 |
а что-то типа
|
18 |
find ... -exec bash -c '... `...`' \;
|
19 |
|
20 |
|
21 |
P.S. Кстати, bash&find явно что-то химичат со вторым пунктом. Если в `...`
|
22 |
команда относительно сложная, всё работает как я описал, т.е.:
|
23 |
find . -exec echo ... `ls -dl "{}"` \;
|
24 |
не работает (и не должен), а
|
25 |
find . -exec bash -c 'echo ... `ls -dl "{}"`' \;
|
26 |
работает корректно. НО! Если в `...` команда простая, то
|
27 |
find . -exec echo ... `echo "{}"` \;
|
28 |
почему-то ТОЖЕ РАБОТАЕТ, хотя и не должен по логике... работает идентично
|
29 |
find . -exec bash -c 'echo ... `echo "{}"`' \;
|
30 |
Кто-нить это чудо объяснить может?
|
31 |
|
32 |
--
|
33 |
WBR, Alex.
|
34 |
--
|
35 |
gentoo-user-ru@g.o mailing list |