명령 행에서 파일 경로를 URI로 변환하려면 어떻게해야합니까?
예 :
/home/MHC/directory with spaces and ümläuts
에
file:///home/MHC/directory%20with%20spaces%20and%20%C3%BCml%C3%A4uts
답변
이를 수행하는 한 가지 방법은을 사용하여 urlencode
Ubuntu에 설치하는 것입니다 sudo apt-get install gridsite-clients
.
urlencode -m "$filepath"
경로를 URI로 변환합니다. URI의 “file : //”부분은 생략되지만 bash one-liner를 통해 쉽게 추가 할 수 있습니다.
uri=$(urlencode -m "$1"); echo "file://$uri"
또는 직접
echo "file://$(urlencode -m "$1")"
또는
echo -n file://; urlencode -m "$1"
참고 문헌에 대한 Michael Kjörling에게 감사드립니다!
답변
명령 행에서 직접 Perl 모듈 URI :: file을 사용할 수도 있습니다 .
$ path="/home/MHC/directory with spaces and ümläuts"
$ echo $path | perl -MURI::file -e 'print URI::file->new(<STDIN>)."\n"'
file:///home/MHC/directory%20with%20spaces%20and%20%C3%BCml%C3%A4uts
$
답변
CentOS에서는 추가 종속성이 필요하지 않습니다.
$ python -c "import urllib;print urllib.quote(raw_input())" <<< "$my_url"