Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Почему ::„bash: ошибка синтаксиса около неожиданной лексемы `cd'?“  (Прочитано 10144 раз)

0 Пользователей и 1 Гость просматривают эту тему.

adawdp

  • Автор темы
  • Гость
2015 Jul 09; 07:58 AM; Oakville, ON, Canada.

— Здр.Все!

— Возникла необходимость распаковать данные из множества архивов в  одну отдельную конкретную директорию.

— Поскольку я в основном  могу более менее свободно пользоваться только find и grep, (я про них старательно читаю man'bl и рекомендации :) ) то применяю такую команду:

Код: (bash) [Выделить]
find . -maxdepth 1 -type f -iname '*.tar.gz' -exec tar xzf '{}' -C /media/MYCOP/BpeMeHHo \;
— Параметр „-maxdepth“ иногда пишу иногда не пишу, цифры ставлю разные, на что это влияет понимаю, читал.

— Встретил такую команду, которая мне показалась очень красивой :), аналогичного или близкого назначения

Код: (bash) [Выделить]
for i in *.tar.gz; do tar xvzf $i -C path/to/output/directory; done
— Решил её испытать, понравилась :)
Код: (bash) [Выделить]
mixail@mixail-Inspiron-530s:~/Kop3uHa$ for i in *.tar.gz; do tar xvzf $i -C /media/MYCOP/BpeMeHHo; done
bash: ошибка синтаксиса около неожиданной лексемы `cd'
mixail@mixail-Inspiron-530s:~/Kop3uHa$
 
— Что-то вот не работает. В чём может быть причина?



symon2014

  • Автор темы
  • Гость
Цитировать
`cd'
может различный вид апострфов?

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
папки и файл имена пробел.
кавычки нужно.
Wars ~.o

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Кавычки пробовали поставить?
Код: (bash) [Выделить]
for i in *.tar.gz
do
    tar xvzf "$i" -C "/media/MYCOP/BpeMeHHo"
done
И хочу предложить ещё вариант
Код: (bash) [Выделить]
cat *.tar.gz | tar -C "/media/MYCOP/BpeMeHHo" -xvzf -
« Последнее редактирование: 09 Июля 2015, 16:59:26 от Azure »
В Linux можно сделать ВСЁ что угодно, достаточно знать КАК !

adawdp

  • Автор темы
  • Гость
2015 Jul 09; 10:54 AM

— Спасибо всем, результаты такие:
Код: (bash) [Выделить]
mixail@mixail-Inspiron-530s:~/Kop3uHa$ for i in *.tar.gz
> do
bash: ошибка синтаксиса около неожиданной лексемы `cd'
mixail@mixail-Inspiron-530s:~/Kop3uHa$ for i in *.tar.gz; do
bash: ошибка синтаксиса около неожиданной лексемы `cd'
mixail@mixail-Inspiron-530s:~/Kop3uHa$ for i in *.tar.gz; do; tar xvzf "$i" -C "/media/MYCOP/BpeMeHHo"; done
bash: ошибка синтаксиса около неожиданной лексемы `cd'
mixail@mixail-Inspiron-530s:~/Kop3uHa$

— Эта команда
Код: (bash) [Выделить]
cat *.tar.gz | tar -C "/media/MYCOP/BpeMeHHo" -xvzf - выполнфяется нормально, но распаковывает только первый архив :(
Код: (bash) [Выделить]
mixail@mixail-Inspiron-530s:~/Kop3uHa/15Jul09$ ls
15Jul08×18×38×03.tar.gz  BackUp2015Jul08180801.tar.gz  BackUp2015Jul08224709.tar.gz  BackUp2015Jul08225303.tar.gz  documents-export-2015Jul08183518.zip
mixail@mixail-Inspiron-530s:~/Kop3uHa/15Jul09$ cat *.tar.gz | tar -C "/media/MYCOP/BpeMeHHo" -xvzf -
— Т.е. Распаковывается только 15Jul08×18×38×03.tar.gz, другие tar архивы нет…
— Ну и естественно она не будет искать „глубоко расположенные архивы“…



Пользователь решил продолжить мысль 09 Июля 2015, 18:02:23:
2015 Jul 09; 11:00 AM

— Всё, причина найдена у меня был чей-то алис „doctor“ по ошибке я удалил символы, получилось „do“ :)

— Вот такая вот глупость получилась :( … Алиас с названием „do“

— Всем спасибо, прошу прощение за отнятое время !
« Последнее редактирование: 09 Июля 2015, 18:02:23 от adawdp »

 

Страница сгенерирована за 0.02 секунд. Запросов: 22.