Скрипрт читает названия файлов из "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
а скриптом????
Ёлы-палы, это же основы!
Возьми названия в кавычки.
>Ёлы-палы, это же основы!
>Возьми названия в кавычки.>Командой можно такой файл скопировать так:
>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/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"
В двойных кавычках переменные должны подставлятся...
>>>Ёлы-палы, это же основы!
>>>Возьми названия в кавычки.
>>
>>>Командой можно такой файл скопировать так:
>>>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пасибо!
Работает...
>>Ёлы-палы, это же основы!
>>Возьми названия в кавычки.
>
>>Командой можно такой файл скопировать так:
>>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
>
>я это знаю.
>
>...а скриптом????А какая разница, руками ты пишешь или в скрипте? Правила везде одинаковы.