Як конвертувати шлях Windows (із зворотними косими рисами) у формат Unix на Babun / Cygwin


8

Я використовую Windows і пишу сценарії оболонки для запуску на Babun (POSIX-api).

Мені потрібно прочитати шлях із змінної середовища, $ USERPROFILE і перетворити його в стиль unix (замінити \ на /, с: \ на / с /), щоб потім я міг його використовувати в сценарії.

Проблема полягає в тому, що коли я повторюю вміст $ USERPROFILE, косої риски інтерпретуються як символи, що втечуть, і я отримую несподіваний результат (літери "випадковим чином" перетворюються на спеціальні символи, такі як \ n, \ f тощо). Так що я не можу повторити це, наприклад, у sed.

Відповіді:


11

Cygwin надає дуже корисну cygpathутиліту для перетворення шляхів формату Unix та Windows. З посібника користувача Cygwin

cygpathПрограма представляє собою утиліту , яка перетворює власні імена файлів Windows , в Cygwin POSIX-колійних імен типу і навпаки. Її можна використовувати, коли програмі Cygwin потрібно передати ім'я файлу до рідної програми Windows або очікує отримання імені файлу від рідної програми Windows. Крім того, cygpathможна виводити інформацію про розташування важливих системних каталогів у будь-якому форматі.

Він може конвертувати в / з або шляхів формату Windows або DOS, наприклад, для друку формату Unix шляху до Windows:

$ cygpath -u "$USERPROFILE"
/cygdrive/c/Users/anthony

Детальні відомості та основні відомості про використання див. У Посібнику користувача Cygwincygpath --help .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.