Команда gsutil ls не работает из-за амперсанда в пути

Мне не удалось добиться успеха после нескольких попыток перечислить содержимое, доступное в пути, потому что имя моей папки содержит амперсанд, как показано ниже.

gsutil ls -r gs://testing_purpose/U&T

Он возвращает ошибку, как показано ниже CommandException: один или несколько URL-адресов не соответствуют ни одному объекту.

'T' не распознается как внутренняя или внешняя команда, действующая программа или командный файл.


person CIPHER    schedule 29.03.2017    source источник


Ответы (2)


Ваша командная оболочка интерпретирует & как управляющий символ, поэтому ваш оператор выглядит так для оболочки:

yourshell$ gsutil ls -r gs://testing_purpose/U
yourshell$ T

Чтобы исправить это, вы должны указать аргумент управляющим символом в кавычках, например:

gsutil ls -r "gs://testing_purpose/U&T"

person Travis Hobrla    schedule 29.03.2017
comment
Я выполняю этот скрипт в оболочке Google Cloud SDK. Я пробовал все эти методы даже раньше, но он возвращал ту же ошибку ....! - person CIPHER; 30.03.2017

Что сработало для меня в Windows и Google Cloud SDK Shell, так это заключить путь в кавычки и экранировать символ & с помощью ^. Например.:

gsutil ls "gs://a ^& b"
person Kaith    schedule 09.07.2019