11 Bagaimana saya bisa mengubah jalur file ke URI di baris perintah? Contoh : /home/MHC/directory with spaces and ümläuts untuk file:///home/MHC/directory%20with%20spaces%20and%20%C3%BCml%C3%A4uts bash filenames Glutanimate sumber 2 stackoverflow.com/q/11876353/486504 a CVn 2 stackoverflow.com/q/296536/486504 a CVn Jawaban: 5 Salah satu cara untuk melakukannya adalah menggunakan urlencode(instal di Ubuntu via sudo apt-get install gridsite-clients). urlencode -m "$filepath" akan mengubah jalur menjadi URI. Bagian "file: //" dari URI akan ditinggalkan, tetapi Anda dapat dengan mudah menambahkannya melalui bash one-liner: uri=$(urlencode -m "$1"); echo "file://$uri" atau langsung echo "file://$(urlencode -m "$1")" atau echo -n file://; urlencode -m "$1" Terima kasih banyak kepada Michael Kjörling untuk referensi! Glutanimate sumber Jangan lupa tanda kutip! Anda mungkin ingin encodeduri=$(urlencode -m "$uri") dengan $uritanda kutip ganda! gniourf_gniourf @ gniourf_gniourf Terima kasih, modifikasi kodenya. Glutanimate 4 Anda juga dapat menggunakan modul Perl URI :: file langsung dari baris perintah: $ 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 $ sumber 1 Dapat disingkat menjadi echo $path | perl -MURI::file -E 'say URI::file->new(<>)'dengan Perl 5.10 (dari tahun 2007) atau lebih baru Daniel Böhmer 2 Pada CentOS, tidak ada ketergantungan tambahan yang dibutuhkan: $ python -c "import urllib;print urllib.quote(raw_input())" <<< "$my_url" Rockallite sumber Dengan pathlibmodul itu bisa dilakukan viapython -c 'import sys,pathlib; print(pathlib.Path(sys.argv[1]).resolve().as_uri())' "$my_url" umi pathlibhanya tersedia di Python 3, yang tidak diinstal secara default di CentOS. Rockallite
5 Salah satu cara untuk melakukannya adalah menggunakan urlencode(instal di Ubuntu via sudo apt-get install gridsite-clients). urlencode -m "$filepath" akan mengubah jalur menjadi URI. Bagian "file: //" dari URI akan ditinggalkan, tetapi Anda dapat dengan mudah menambahkannya melalui bash one-liner: uri=$(urlencode -m "$1"); echo "file://$uri" atau langsung echo "file://$(urlencode -m "$1")" atau echo -n file://; urlencode -m "$1" Terima kasih banyak kepada Michael Kjörling untuk referensi! Glutanimate sumber Jangan lupa tanda kutip! Anda mungkin ingin encodeduri=$(urlencode -m "$uri") dengan $uritanda kutip ganda! gniourf_gniourf @ gniourf_gniourf Terima kasih, modifikasi kodenya. Glutanimate 4 Anda juga dapat menggunakan modul Perl URI :: file langsung dari baris perintah: $ 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 $ sumber 1 Dapat disingkat menjadi echo $path | perl -MURI::file -E 'say URI::file->new(<>)'dengan Perl 5.10 (dari tahun 2007) atau lebih baru Daniel Böhmer 2 Pada CentOS, tidak ada ketergantungan tambahan yang dibutuhkan: $ python -c "import urllib;print urllib.quote(raw_input())" <<< "$my_url" Rockallite sumber Dengan pathlibmodul itu bisa dilakukan viapython -c 'import sys,pathlib; print(pathlib.Path(sys.argv[1]).resolve().as_uri())' "$my_url" umi pathlibhanya tersedia di Python 3, yang tidak diinstal secara default di CentOS. Rockallite
4 Anda juga dapat menggunakan modul Perl URI :: file langsung dari baris perintah: $ 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 $ sumber 1 Dapat disingkat menjadi echo $path | perl -MURI::file -E 'say URI::file->new(<>)'dengan Perl 5.10 (dari tahun 2007) atau lebih baru Daniel Böhmer 2 Pada CentOS, tidak ada ketergantungan tambahan yang dibutuhkan: $ python -c "import urllib;print urllib.quote(raw_input())" <<< "$my_url" Rockallite sumber Dengan pathlibmodul itu bisa dilakukan viapython -c 'import sys,pathlib; print(pathlib.Path(sys.argv[1]).resolve().as_uri())' "$my_url" umi pathlibhanya tersedia di Python 3, yang tidak diinstal secara default di CentOS. Rockallite
2 Pada CentOS, tidak ada ketergantungan tambahan yang dibutuhkan: $ python -c "import urllib;print urllib.quote(raw_input())" <<< "$my_url" Rockallite sumber Dengan pathlibmodul itu bisa dilakukan viapython -c 'import sys,pathlib; print(pathlib.Path(sys.argv[1]).resolve().as_uri())' "$my_url" umi pathlibhanya tersedia di Python 3, yang tidak diinstal secara default di CentOS. Rockallite
Jawaban:
Salah satu cara untuk melakukannya adalah menggunakan
urlencode
(instal di Ubuntu viasudo apt-get install gridsite-clients
).akan mengubah jalur menjadi URI. Bagian "file: //" dari URI akan ditinggalkan, tetapi Anda dapat dengan mudah menambahkannya melalui bash one-liner:
atau langsung
atau
Terima kasih banyak kepada Michael Kjörling untuk referensi!
sumber
encodeduri=$(urlencode -m "$uri")
dengan$uri
tanda kutip ganda!Anda juga dapat menggunakan modul Perl URI :: file langsung dari baris perintah:
sumber
echo $path | perl -MURI::file -E 'say URI::file->new(<>)'
dengan Perl 5.10 (dari tahun 2007) atau lebih baruPada CentOS, tidak ada ketergantungan tambahan yang dibutuhkan:
sumber
pathlib
modul itu bisa dilakukan viapython -c 'import sys,pathlib; print(pathlib.Path(sys.argv[1]).resolve().as_uri())' "$my_url"
pathlib
hanya tersedia di Python 3, yang tidak diinstal secara default di CentOS.