Подсистема Linux для Windows - сценарий оболочки scp переименовывает все файлы в «.» - PullRequest
0 голосов
/ 06 января 2020

У меня есть простой сценарий оболочки, состоящий из одной строки:

scp user @: / home / user / folder / subfolder / * ./destFolder/

Когда я запускаю эту одну строку в моей Linux оболочке он работает нормально, он копирует все файлы в мой каталог destFolder. Но когда я запускаю его как скрипт, он оставляет мне один файл с именем "." в моем каталоге destFolder. Я все еще вижу вывод из scp, как будто он копирует все файлы снова и просто сохраняет их как ".", Перезаписывая его снова и снова. Все файлы имеют размер 25 КБ и остаток "." размер файла также составляет 25 КБ.

Я действительно не понимаю, почему он не работает или работает по-другому, когда я ввожу его непосредственно в оболочку, а не использую эту же оболочку для запуска этого сценария.

1 Ответ

0 голосов
/ 08 января 2020

Я понял, в чем проблема. Текстовый редактор, который я использовал, добавлял CRLF в конце каждой строки. Очевидно подсистема Linux для Windows интерпретирует CR как символы: '/ r' вместо игнорирования CR, как обычно делает Linux. Это приводило к тому, что все файлы назывались '$' r '', что Windows отображалось как: ..

...