Bash копия со специальными символами - PullRequest
0 голосов
/ 14 февраля 2012

У меня есть файл с именем Test_File @! @ # ~: "_ 1328853976191.txt в каталоге tmp

Я использую следующий код

#!/bin/sh


for f in /tmp/*.azw2; do
   if [ -f "$f" ]; then
      cp "$f" /some/directory
   fi

done

выдает ошибку

cp: невозможно удалить '/some/directory/Test_File@!@#~:"_1328853976191.txt': нет такого файла или каталога

Это работает, если пункт назначения находится в / или каталоге под root, но не в каком-либо каталоге глубиной 2 уровня.

Как я могу исправить эту проблему?

1 Ответ

2 голосов
/ 14 февраля 2012

У меня нет полного объяснения, но восклицательный знак в имени файла заставляет меня думать, что отключение расширения истории (с помощью set +H) может помочь.

...