bash에서 파일 경로를 URI로 변환


답변:


5

이를 수행하는 한 가지 방법은을 사용하여 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에게 감사드립니다!


따옴표를 잊지 마십시오! 당신은 아마 원하는 encodeduri=$(urlencode -m "$uri") $uri큰 따옴표!
gniourf_gniourf

@gniourf_gniourf 감사합니다. 코드를 적절히 수정하십시오.
Glutanimate

4

명령 행에서 직접 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
$

1
단축 할 수있다 echo $path | perl -MURI::file -E 'say URI::file->new(<>)'(2007 년 대비) 이상 펄 5.10
다니엘 Böhmer

2

CentOS에서는 추가 종속성이 필요하지 않습니다.

$ python -c "import urllib;print urllib.quote(raw_input())" <<< "$my_url"

함께 pathlib모듈은 통해 수행 할 수python -c 'import sys,pathlib; print(pathlib.Path(sys.argv[1]).resolve().as_uri())' "$my_url"
우미

pathlibCentOS에는 기본적으로 설치되지 않는 Python 3에서만 사용할 수 있습니다.
Rockallite
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.