Что происходит с файлом с двоеточием в имени?
Я не обычный пользователь curl, но время от времени я использую его для проверки чего-либо.
Итак, я писал в командной строке это:
curl -o:output.html www.google.com
Это не дало мне никакой ошибки, похоже, что все в порядке, но выходной файл не появился.
Итак, я запустил мониторинг процесса и проверил, что происходит, на скриншоте ниже я думаю, что ясно, в чем была моя проблема, но теперь вопрос - почему все три операции помечены как успешные? Я искал имя файла по всему диску, но файла не было, результат создания файла был перезаписан, поэтому похоже, что он где-то был сохранен.
1 ответ
"output.html" - это именованный поток каталога (или, возможно, файла) "C:\demo".
К сожалению copy
Команде не нравится потоковый синтаксис, поэтому вы не можете использовать его для копирования данных в обычный файл. Вы можете использовать:
notepad c:\demo:output.html
и сохранить данные в другом месте.
Ваша первоначальная проблема заключалась в неправильном синтаксисе curl. Похоже, что curl не нуждается в двоеточии, поэтому он рассматривает его как часть имени файла, в результате чего Windows интерпретирует его как имя потока.
Вы можете перечислить именованные потоки с помощью инструмента Stream sysinternals.