powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / шел: имена файлов с пробелами в операторе for ? +
16 сообщений из 16, страница 1 из 1
шел: имена файлов с пробелами в операторе for ? +
    #33190547
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
#!/bin/sh.exe 
nm=lss

#echo $IFS >ifs. 1 

#  IFS="\\n\\t"

#echo $IFS >ifs. 2 

  for f in `ls - 1 `  
  do
    echo "-->"  $f  "<--"
  done


вот чето никак не могу такую директорию распечатать

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 1   2   3   4 
 1   2   3   4 . 1  d d d
 2 
 3 
 4 
 5 
 6 
ifs. 1 
ifs. 2 
lss.sh
sh.cmd
xx
или не берет длинное имя (если закоментарить IFS)
или в f кладет всю директорию ( если раскоментарить)
...
Рейтинг: 0 / 0
шел: имена файлов с пробелами в операторе for ? +
    #33190551
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот через файлы придумал.
а без вывода в файл хочется.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
  ls - 1   > .ls
  exec < .ls 
  while   read  f
  do
    echo "-->"  "$f"  "<--"
  done
  exec   < nul
  rm .ls
...
Рейтинг: 0 / 0
шел: имена файлов с пробелами в операторе for ? +
    #33190796
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tchingiz , а Вы не слишком усложнили?
Что, если заменить

for i in `ls -1`

на

for i in *
...
Рейтинг: 0 / 0
шел: имена файлов с пробелами в операторе for ? +
    #33190813
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но в принципе и так работает:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
#!/bin/sh

IFS="
"


for i in `ls - 1 `
do
 echo  "$i"
done

хотя уверен что лучше и проще первый вариант.

А в чем смысла кстати IFS="\\n\\t" в Вашем варианте?
...
Рейтинг: 0 / 0
шел: имена файлов с пробелами в операторе for ? +
    #33190923
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что вообще весь этот скрипт должен делать?
Не исключено, что есть более простые методы...
...
Рейтинг: 0 / 0
шел: имена файлов с пробелами в операторе for ? +
    #33192728
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hул
у меня не работает мой. я на виндюках гнутым шелом пользуюсь
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
--> G:/db_save/ftp/ln/0 <--
--> G:/db_save/ftp/ln/1 <--
--> 2 <--
--> 3 <--
--> 4 <--
--> G:/db_save/ftp/ln/1 <--
--> 2 <--
--> 3 <--
--> 4.1 <--
--> d <--
--> d <--
--> d <--
--> G:/db_save/ftp/ln/2 <--
--> G:/db_save/ftp/ln/3 <--
--> G:/db_save/ftp/ln/4 <--
--> G:/db_save/ftp/ln/5 <--
--> G:/db_save/ftp/ln/6 <--
--> G:/db_save/ftp/ln/ifs.1 <--
--> G:/db_save/ftp/ln/ifs.2 <--
--> G:/db_save/ftp/ln/lss.sh <--
--> G:/db_save/ftp/ln/sh.cmd <--
--> G:/db_save/ftp/ln/xx <--
--> G:/db_save/ftp/ln/yy <--

#############    А Ваш работает

G:\db_save\ftp\ln>sh.exe  lss.sh          
--> G:/db_save/ftp/ln/0 <--
--> G:/db_save/ftp/ln/1 2 3 4 <--
--> G:/db_save/ftp/ln/1 2 3 4.1 d d d <--
--> G:/db_save/ftp/ln/2 <--
--> G:/db_save/ftp/ln/3 <--
--> G:/db_save/ftp/ln/4 <--
--> G:/db_save/ftp/ln/5 <--
--> G:/db_save/ftp/ln/6 <--
--> G:/db_save/ftp/ln/ifs.1 <--
--> G:/db_save/ftp/ln/ifs.2 <--
--> G:/db_save/ftp/ln/lss.sh <--
--> G:/db_save/ftp/ln/sh.cmd <--
--> G:/db_save/ftp/ln/xx <--


в этой переменной содержится пробел, ньюлайн и табуляция.
эти символы разляют слова. Я пытался убрать пробел, а оставить только ньюлайны.
оказалось не дочитал. значение этой переменной используется только при подстановке
параметров и вывода команд, а также при чтении входного потока командой реад.
...
Рейтинг: 0 / 0
шел: имена файлов с пробелами в операторе for ? +
    #33192729
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДокАл
не исключено.
я состояние директорий синхронизирую.
у нас положили файлы пользователей не в блобы в бд, а в файловую систему,
рядом с базой данных. теперь надо копии делать.

вот там живет предверсия скрипта

http://sql.ru/forum/actualthread.aspx?tid=198807&hl=syncdir#1691000
...
Рейтинг: 0 / 0
шел: имена файлов с пробелами в операторе for ? +
    #33192766
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
man find ?
или использовать какой-нить стандартный скрипт, благо их миллион
...
Рейтинг: 0 / 0
шел: имена файлов с пробелами в операторе for ? +
    #33193049
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1
шутку про файнд не понял.
файнд же ищет же?
2
а есть ли возможность сократить число скриптов для просмотра и ознакомления
с миллиона, ну хотя бы до двух тысяч?
...
Рейтинг: 0 / 0
шел: имена файлов с пробелами в операторе for ? +
    #33193139
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А про find вовсе не шутка, советую почитать мануал внимательно.
Возможность есть, конечно. Для этого нужно написать тут, что же конкретно нужно)
...
Рейтинг: 0 / 0
шел: имена файлов с пробелами в операторе for ? +
    #33198001
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
рядом с базой данных лежит набор файлов, аккуратно разложенный по дереву директорий - директория а..
эти файлы надо бекапить в другую директорию б с частичным путем.
(синхронизировать директории а и б)
тоесть если /а/x/f удален, то и надо удалить /b/x/f;
если /a/x/g добавлен или изменен, то надо его скопировать в директорию /b/x.
ну в общем все.
...
Рейтинг: 0 / 0
шел: имена файлов с пробелами в операторе for ? +
    #33198317
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё это делается локально или по сети?
...
Рейтинг: 0 / 0
шел: имена файлов с пробелами в операторе for ? +
    #33200480
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в офисе - по сети - с одной машины на другую.

есть база на удаленной машины. там бекапится локально,
вычисляется разница и новые-обновленные_файлы_и_имена_удаленных_файлов передаются через фтп сервер в офис.
...
Рейтинг: 0 / 0
шел: имена файлов с пробелами в операторе for ? +
    #33200502
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть, стоит юзать rsync
...
Рейтинг: 0 / 0
шел: имена файлов с пробелами в операторе for ? +
    #33200556
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://samba.org/rsync/FAQ.html
да вроде все отладил уже.
фтпклиент ругается когда длинные файлы. больше 30 метров.
а файлы при этом передаются хорошо.
буду их наверно зипом сворачивать, добавляется контрольная инфа
...
Рейтинг: 0 / 0
шел: имена файлов с пробелами в операторе for ? +
    #33200560
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хвалят этот рсинк. машины у меня все равно с виндюками.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / шел: имена файлов с пробелами в операторе for ? +
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]