Symboli c ссылки без пробелов для заданного набора файлов в bash - PullRequest
0 голосов
/ 13 января 2020

У меня есть следующий код ниже, который является попыткой создать символьную ссылку c для каждого файла, соответствующего шаблону * let.txt в рабочей папке, который имеет то же имя, что и исходный файл, но вместо этого подчеркивания пространств. Мне нужно сохранить исходные файлы без изменений, поэтому я использую символические ссылки.

Я получаю ошибку:

ln: не удалось получить доступ к * * let.txt ': слишком много уровней символьных c ссылок

Итак, я вижу строку поиска буквально переходит в ураган, я не знаю почему. Как мне исправить мой код?

for file in *let.txt; do

tempstring="${file// /_}"

ln -s "$file" $tempstring

done

1 Ответ

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

Попробуйте поместить кавычки вокруг всех ваших переменных, когда 1 переменная - 1 параметр:

for file in *let.txt; do
tempstring="${file// /_}"
ln -s "$file" "$tempstring"
done

Протестировано и работает на GNU bash, версия 5.0.11 (1) -релиз (x86_64-apple-darwin18) .6.0)

...