URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 5063
[ Назад ]

Исходное сообщение
"Дурацкие файлы. Не копируются......"

Отправлено tester , 18-Янв-06 19:42 
Скрипрт читает названия файлов из "tmp.txt" и копирует их из директори DIR_A в другую директорию DIR_B.

Но иногда попадаются файлы с дурацкими названиями например: "mama & papa" и скрипт не может их скопировать.... Как быть???

=======   tmp.txt ========================
man
man/fr
man/fr/mama & papa
man/fr/man1
man/fr/man1/cpbk.1
===========================================

===== Это часть скрипта ===================

    cat tmp.txt | while read Files
    do
    cp -a DIR_A$Files $DIR_B$Files
    done
============================================


linux:/usr/local/sbin #bash -x script.sh
.................
+ cat tmp.txt
+ read Files
+ cp -a /DIR_A/man/fr/mama '&' papa /DIR_B/man/fr/mama '&' papa
cp: target `papa' is not a directory
+ read Files
.................

Командой можно такой файл скопировать так:

cp -a /DIR_A/man/fr/'mama & papa' /DIR_B/man/fr/'mama & papa'

или так:

cp -a /DIR_A/man/fr/mama\ \&\ papa /DIR_B/man/fr/mama\ \&\ papa

а скриптом????


Содержание

Сообщения в этом обсуждении
"Дурацкие файлы. Не копируются......"
Отправлено madskull , 18-Янв-06 20:08 
Ёлы-палы, это же основы!
Возьми названия в кавычки.

"Дурацкие файлы. Не копируются......"
Отправлено tester , 18-Янв-06 20:17 
>Ёлы-палы, это же основы!
>Возьми названия в кавычки.

>Командой можно такой файл скопировать так:
>cp -a /DIR_A/man/fr/'mama & papa' /DIR_B/man/fr/'mama & papa'
>или так:
>cp -a /DIR_A/man/fr/mama\ \&\ papa /DIR_B/man/fr/mama\ \&\ papa

я это знаю.

...а скриптом????


"Дурацкие файлы. Не копируются......"
Отправлено elvenic , 18-Янв-06 21:01 
>>Ёлы-палы, это же основы!
>>Возьми названия в кавычки.
>
>>Командой можно такой файл скопировать так:
>>cp -a /DIR_A/man/fr/'mama & papa' /DIR_B/man/fr/'mama & papa'
>>или так:
>>cp -a /DIR_A/man/fr/mama\ \&\ papa /DIR_B/man/fr/mama\ \&\ papa
>
>я это знаю.
>
>...а скриптом????

А так не работает:

   cp -a "DIR_A$Files" "$DIR_B$Files"

В двойных кавычках переменные должны подставлятся...


"Дурацкие файлы. Не копируются......"
Отправлено tester , 18-Янв-06 22:33 
>>>Ёлы-палы, это же основы!
>>>Возьми названия в кавычки.
>>
>>>Командой можно такой файл скопировать так:
>>>cp -a /DIR_A/man/fr/'mama & papa' /DIR_B/man/fr/'mama & papa'
>>>или так:
>>>cp -a /DIR_A/man/fr/mama\ \&\ papa /DIR_B/man/fr/mama\ \&\ papa
>>
>>я это знаю.
>>
>>...а скриптом????
>
>А так не работает:
>
>   cp -a "DIR_A$Files" "$DIR_B$Files"
>
>В двойных кавычках переменные должны подставлятся...

Cпасибо!

Работает...


"Дурацкие файлы. Не копируются......"
Отправлено madskull , 18-Янв-06 22:31 
>>Ёлы-палы, это же основы!
>>Возьми названия в кавычки.
>
>>Командой можно такой файл скопировать так:
>>cp -a /DIR_A/man/fr/'mama & papa' /DIR_B/man/fr/'mama & papa'
>>или так:
>>cp -a /DIR_A/man/fr/mama\ \&\ papa /DIR_B/man/fr/mama\ \&\ papa
>
>я это знаю.
>
>...а скриптом????

А какая разница, руками ты пишешь или в скрипте? Правила везде одинаковы.