Что происходит с файлом с двоеточием в имени?

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

curl -o:output.html www.google.com

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

1 ответ

Решение

"output.html" - это именованный поток каталога (или, возможно, файла) "C:\demo".

К сожалению copy Команде не нравится потоковый синтаксис, поэтому вы не можете использовать его для копирования данных в обычный файл. Вы можете использовать:

notepad c:\demo:output.html

и сохранить данные в другом месте.

Ваша первоначальная проблема заключалась в неправильном синтаксисе curl. Похоже, что curl не нуждается в двоеточии, поэтому он рассматривает его как часть имени файла, в результате чего Windows интерпретирует его как имя потока.

Вы можете перечислить именованные потоки с помощью инструмента Stream sysinternals.

Другие вопросы по тегам