Saya sedang mengerjakan skrip python yang meneruskan lokasi file ke subproses scp. Tidak apa-apa, tetapi saya berada dalam situasi di mana saya mungkin akhirnya menggabungkan jalur dengan nama file sehingga ada '/ ganda di jalan. Saya tahu bahwa bash tidak peduli jika Anda memiliki banyak pemisah file, tetapi saya ingin tahu bagaimana tepatnya hal itu diperbaiki. Apakah bash yang menghapus / extra ekstra s atau apakah itu benar-benar tidak penting?
Saya bertanya karena ini akan menghemat beberapa baris kode untuk memeriksa / tambahan s sambil menggabungkan. Aku tahu ini bukan masalah besar, tapi aku juga penasaran. Saya memiliki skrip bash yang memiliki baris cd //usr (bukan cd /usr ), yang tampaknya menyiratkan bahwa mungkin ada signifikansi untuk menggunakan beberapa / s di jalan
Jawaban yang Diterima:
Beberapa garis miring diperbolehkan dan setara dengan satu garis miring. Dari spesifikasi Single Unix (versi 4), definisi dasar 3.271 pathname:“Beberapa garis miring yang berurutan dianggap sama dengan satu garis miring.”
Ada satu pengecualian:Jika nama path dimulai dengan dua karakter garis miring yang berurutan, komponen pertama yang mengikuti karakter garis miring utama dapat diinterpretasikan dengan cara yang ditentukan oleh implementasi. (ref:definisi dasar 4.13 resolusi nama path). Linux sendiri tidak melakukan ini, meskipun beberapa aplikasi mungkin melakukannya, dan sistem unix-ish lainnya melakukannya (mis. Cygwin).
/ . tambahan di akhir nama path memaksa nama path untuk merujuk ke direktori. Dalam (POSIX 1003.1-2001 (Single Unix v4) definisi dasar 4.11 resolusi nama path, sebuah / tambahan setara dengan /. . di akhir . Definisi dasar POSIX 1003.1-2008 (Single Unix v4) 4.13 menghilangkan persyaratan untuk membuatnya setara dengan /. , untuk mengatasi direktori yang tidak ada (mis. mkdir foo/ diperlukan untuk bekerja, sedangkan mkdir foo/. tidak akan — lihat alasan perubahannya).
Untuk program yang bekerja pada entri direktori, jika foo adalah tautan simbolis ke direktori, lalu meneruskan foo/ adalah cara untuk membuat program bertindak pada direktori alih-alih tautan simbolik.
Perhatikan bahwa ini hanya berlaku untuk resolusi nama jalur, yaitu saat mengakses file. Manipulasi nama file dapat bekerja secara berbeda. Misalnya basename dan dirname mengabaikan garis miring.
-
“tidak dapat Membuat Direktori Cache /home//.composer/cache/repo/https—packagist.org/, Atau Direktori Tidak Dapat Ditulis. Melanjutkan Tanpa Cache”?
-
Instal binari ke /bin, /sbin, /usr/bin dan /usr/sbin, interaksi dengan --prefix dan DESTDIR
-
Kapan saya harus menggunakan /dev/shm/ dan kapan saya harus menggunakan /tmp/?