bash에서 파일 경로를 URI로 변환 행에서 파일 경로를 URI로 변환하려면

명령 행에서 파일 경로를 URI로 변환하려면 어떻게해야합니까?

:

/home/MHC/directory with spaces and ümläuts

file:///home/MHC/directory%20with%20spaces%20and%20%C3%BCml%C3%A4uts



답변

이를 수행하는 한 가지 방법은을 사용하여 urlencodeUbuntu에 설치하는 것입니다 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"


답변