// foo/bar qaysi tizimlardan/foo/bar dan farq qiladi?

POSIX spetsifikatsiyasi bo'yicha, ( 1 , 2 , <3> </> " dan boshlangan yo'lni amalga oshirishga ruxsat berish uchun "> 3 .

POSIX ilovasi (POSIX xususiyatiga barcha POSIXga mos tizimlar uchun ko'chma bo'lishi uchun yozilgan dastur) /foo/bar kodi /foo/bar (lekin ular /// foo/bar kodi bilan bir xilligini taxmin qilishlari mumkin).

Ayniqsa, //foo ni ishlatadigan POSIX tizimlari (tarixiy va hanuzgacha saqlanadigan) qanday? Men ishonardim (endi noto'g'ri isbotlangan ) POSIX xizmati Microsoft tomonidan Unix versiyasi (XENIX) va ehtimol Windows POSIX qatlami (har kim buni tasdiqlay oladimi?) Uchun surildi.

Microsoft Windows uchun POSIX formatidagi Cygwin da ishlatiladi. Microsoft-ning boshqa tizimlari mavjudmi? OpenVMS?

//foo/bar maxsus bo'lgan tizimlarda, nima uchun ishlatiladi? Tarmoq fayllari uchun kirish uchun //host/path ? Virtual fayl tizimlari?

Unix-lik-larda ishlaydigan ba'zi bir ilovalari ni bajaring -mizomsiz API-da emas, balki /foo/bar yo'llarida emas (ular /foo/bar fayl tizimidagi yo'l sifatida)?


Edit, I've since asked a question on the austin-group mailing list about the origin of //foo/bar handling in the spec, and the discussion is an interesting read (from an archaeology point of view at least).

108
@OlivierDulac, ls -ld /// , shuningdek, /// kodini ham ko'rsatishi mumkin, ls faqat ko'rsatiladigan faylni ko'rsatadi berilgani kabi. Cygwin kabi foo/var (fayl tizimida emas, balki) kabi maxsus tizimlarni yoki ilovalarni izlayapman.
qo'shib qo'ydi muallif Stéphane Chazelas, manba
qo'shib qo'ydi muallif Stéphane Chazelas, manba
POSIX haqida bilmayman, lekin AmigaOSda cd/ (yoki /) cd .. - Unix uchun. Unix cd ../ foo/bar va //foo/bar kabi /foo/bar kodi> cd ../../ foo/bar dan foydalaning. (Fayl tizimi ildizi : bo'lishi mumkin.)
qo'shib qo'ydi muallif user12323, manba
qo'shib qo'ydi muallif user10125, manba
Eslayotganimdagina, Solaris //foo da tarmoqqa ulangan uzoq filestorning ba'zi shakllariga kirishni anglatadi.
qo'shib qo'ydi muallif vonbrand, manba
allaqachon ls -ld// d ...../ o'rniga d .....// ni ko'rsatadi: Siz izlayotgan yon ta'sirdanmi?
qo'shib qo'ydi muallif Olivier Dulac, manba
@DevSolar: Haqiqatdan ham ajralib turadigan (va hayratlanarli), ammo biz POSIX-ga faqat POSIX-ga borishimiz kerak, chunki POSIX-dan narsa bor bo'lishi mumkin ^ ^
qo'shib qo'ydi muallif Olivier Dulac, manba
standart ( pubs.opengroup.org/onlinepubs/009695399/basedefs/… ), siz qayd etganingizdek, "Ikki ketma-ketlikdan boshlanadigan yo'llar bilan boshlanadigan yo'lning bajarilishi aniqlangan shaklda talqin qilinishi mumkin" (2dan ko'prog'i 1/echimini topadi). Internetda topilgan ma'lumot: austingroupbugs.net/view.php?id=83 ( IBM z/OS MVS ma'lumotlar majmui uchun//pathname so'rovlarini (ierarxik fayl tizimiga (HFS) farqli o'laroq) hal qiladi (......) Bundan tashqari, z/OS qo'shimcha "katalog" ni yoki "fayl" komponentlari bunday yo'llarga qo'shildi. ... to'liq unix emas, balki ^^).
qo'shib qo'ydi muallif Olivier Dulac, manba
/boot/grub va //boot/grub va /// boot/grub va // //////////////////////////////////////////// /////// & zwnj; //////////////////// & zwnj;//boot/grub bir qatorga mos keladi; ilovalar.
qo'shib qo'ydi muallif cat, manba
/foo/bar kodi bilan bir xil bo'lsa, nima uchun Linuxda krom rasm faylini fayli sifatida ochadi: /// home /edward/Pictures/arch-wallpaper.png ? (boshlang'ich uchta pog'onani eslang)
qo'shib qo'ydi muallif edward torvalds, manba
Windowsda `\` bilan boshlanadigan yo'l UNC yo'lidir, lekin Windows POSIX (yoki da'vo qilmaydi) amal qilmaydi.
qo'shib qo'ydi muallif weakish, manba
@edwardtorvalds, chunki birinchi bit URL: fayli://, shunga o'xshash http:// va shunga o'xshash. Bu yerda ishlaydigan Chromeda hozirda ochilgan oyna UNC usuli fayli: ////$MACHINE/$SHARENAME/index.html (garchi ba'zi sabablarga ko'ra u ham tushunadigan bo'lsa fayli://$ MACHINE /...)
qo'shib qo'ydi muallif Nate, manba

9 javoblar

Bu hozirgacha berilgan javoblarning to'plami va indeksidir. Bu post jamoa viksi , 100+ nufuziga ega bo'lgan har qanday shaxs tomonidan tahrir qilinishi mumkin va hech kim undan obro'sizlanmaydi. O'zingizning javobingizni yozib qo'ying va bu yerga bog'laning (yoki meni kutib turing). Ideal holda, bu javob faqat qisqacha ma'lumot bo'lishi kerak (qisqacha yozuvlar bilan alohida-alohida boshqa javoblar batafsil bo'lishi kerak).

Ayni paytda faol ravishda ishlaydigan tizimlar:

To'xtatilgan tizimlar

Xususan, yo'llar uchun //foo/bar ni ishlatadigan ilovalar

87
qo'shib qo'ydi
UWIN haqiqatan ham "faol ravishda saqlanmoqda"? Qaerda?
qo'shib qo'ydi muallif Sailing Judo, manba
// nom maydonidan foydalanib, ba'zi bir Linux yadrosi ishlab chiqaruvchilari tomonidan Reiser4 metadata qurilmalari uchun taklif qilingan, lekin men bu taklifni nomlar ichida tortishuvni qo'lga kiritgan deb o'ylamayman, yoki hech qachon amalga oshmadi.
qo'shib qo'ydi muallif Kristof Provost, manba
@WouterVerhelst, samba CIFS aktsiyalari uchun //foo/bar spesifikatsiyasini fayl yo'llari sifatida emas, balki oddiy yo'llarni qabul qilgan kontekstlarda ham qabul qiladi. Javobni o'chirib tashlagan bir javob bor, bu narsa mount -t cifs uchun ishlatiladi (u ba'zi samba dasturidan foydalanadi).
qo'shib qo'ydi muallif Stéphane Chazelas, manba
@ jrw32982, ksh93 ga o'xshash uwinning kelajagi aniq emas, lekin hali ham ularni o'lik deb atashga biroz vaqt kerak.
qo'shib qo'ydi muallif Stéphane Chazelas, manba
@Gilles, men sizning emacs tahrirlashni Q & A

bilan // bilan ishlaydigan fayl yo'llari POSIX tomonidan ruxsat berilgan maxsus muolajalar qayerda ekanligini bilib oldim.

qo'shib qo'ydi muallif Stéphane Chazelas, manba
@AlexGittemeier. Ha, bu javobda foydalanilgan ;-).
qo'shib qo'ydi muallif Stéphane Chazelas, manba
@Kevin, ha men ham ishonaman (savolga qarang), lekin bu ixtiyoriy komponent va faqat ba'zi Windows versiyalari ustida o'ylayman va endi to'xtatildi. Agar batafsil ma'lumotingiz bo'lsa, iltimos, javob qo'shing.
qo'shib qo'ydi muallif Stéphane Chazelas, manba
Vebda veb-saytga qo'shilishingiz mumkin, ikkilamchi slayddan boshlanadigan resurslar bitta slashdan ko'ra boshqa bir ildizni belgilaydi.
qo'shib qo'ydi muallif abc667, manba
Windows o'z-o'zidan POSIX API-ni qo'llamoqda ... bu etakchi er-xotin slashni qanday bajaradi?
qo'shib qo'ydi muallif Kevin, manba

Unix brauzerida ishlaydigan ba'zi bir ilovalar tizimning API-ilovasi emas, balki//foo/bar yo'llari?

Depotga murojaat qilish uchun //depot/A/B/C/D yo'llarini ishlatadigan Perforce haqida bilaman. Shuningdek, dastur //Client/C/D dasturini qo'llab-quvvatlaydi, agar mijoz //depot/A/B/ ni ishora qilsa. Bu erda mahalliy FileSystem bu yo'llarga ega bo'lmasligi mumkin.

p4 filelog //depot/A/B/C/D will show the history of that file, even though there is no file /depot/A/B/C/D.

p4 filelog C/D will also show the history of that file, if executed from appropriate Directory.

Reference : https://www.perforce.com/perforce/r12.1/manuals/cmdref/o.fspecs.html

14
qo'shib qo'ydi

Bir necha o'n yillar ilgari, Tektronix utek (BSD 4.2 asosida Unix, avval milliy yarim o'tkazgichlar bo'yicha 32016 CPU'lar keyin Motorola

12
qo'shib qo'ydi
Ushbu aloqalar uchun rahmat Stefan. Dastlab o'ylab ko'rganimdek, bu Utekda edi, va Utek V emas, DFS esa fayl tizimi nomi edi.
qo'shib qo'ydi muallif Eric Scrivner, manba
Tektronix/BSD RFS ilovalari muntazam ravishda fayllar ustidan uzoq fayl tizimlariga o'rnatildi find oldini olish uchun, masalan, ulash nuqtasini harakatlantiring. Muallif ochiq kodni //foo/bar (yoki Nyukasldagi ulanishning /../ foo/bar
qo'shib qo'ydi muallif Stéphane Chazelas, manba
qo'shib qo'ydi muallif Stéphane Chazelas, manba
, bu erda ham DFS va RFS ishlab chiqilgan.
qo'shib qo'ydi muallif Stéphane Chazelas, manba
bu usenet munozarasi bilan mustahkamlanadi.
qo'shib qo'ydi muallif Stéphane Chazelas, manba
@ StéphaneChazelas Men ishonaman, bu Usenet munozarasiga havola . Siz tanlaganingiz Domain/OS, lekin Utek emas. Yoki keyingi xabar (sizdan)
qo'shib qo'ydi muallif user79743, manba

Bu javobdan . Va 2-15-sahifalarni o'qing: Bitsaversdan olingan qo'llanma (rahmat @grawity ).

Birgalikda ma'lumot
  Domeni/OS tarqalgan fayl tizimining ikkinchi dizayn printsipi, sukut bo'yicha ulashish global yagona ism maydoni degan ma'noni anglatadi. Taqsimlangan fayl tizimining nom maydoni yirik foydalanuvchilarga o'xshash fayl tizimidagi kabi ko'rinadi. Bu mutlaq usullar tarmoq ildizining nomi (// deb nomlanadi) bilan boshlanadigan tashqari, an'anaviy UNIX ierarxik nom maydoni. Bundan tashqari, mahalliy yo'nalish (ildiz/katalog) ildiziga nisbatan yo'llarni ifodalash mumkin.

Shuningdek, "Birinchi nashr: Iyul" dan foydalangan holda undan oldingi qo'llanma mavjud. , 1985 ". 1-4- sahifada:

Shakl 1-2da ikkita chiziq (//) eng yuqori darajasini ifodalaydi   daraxtni nomlash, tarmoq ildiz katalogi.

Shunday qilib, biz Apollon dan Domain/OS ning tarmoq kodi uchun // dan foydalanganligini tasdiqlaymiz.

6
qo'shib qo'ydi
O'ylaymanki, grawity guy katta bir arch Linux dev .
qo'shib qo'ydi muallif Bill Comer, manba

NT yadrosi va unga bog'liq bo'lgan API-larning erkin va ochiq manba kodli ilovasi bo'lgan ReactOS loyihasi, ehtimol, shuningdek, o'z shaxsiy Interix -ni o'xshash POSIX quyi tizimi (MS ning original OS/2 quyi tizimi bo'lsa-da) Shuningdek, kontekstda aytilgan , ReactOS analogiyasidan hech qanday eslatma olinmagan) .

Ushbu sa'y-harakatlar hozirgacha kichik , fork() aslida haqiqatdir. Quyida, ochish muammolari da ro`yxati keltirilgan quyi tizimning loyiha sahifasidan olingan parchadir:

paths

What's the best way to use Win32 paths in POSIX applications? ideas:

  • translate ///> into \\.\\ (with a special case for drive letters - /// => :\ - and the special escape //./ => \\.\. UNC paths can be specified with //unc/). // paths are reserved by the standard for implementation-specific behavior, and the /// syntax to escape Win32 paths is widely used in existing POSIX compatibility environments

  • heuristics to recognize "bare" Win32 paths as such

  • case-insensitive lookup for Win32 paths and // paths (does the standard allow this kind of implementation-specific behavior for // paths?).

Qanday qilib bu qanaqa sifatga ega ekanligiga men amin emasman, chunki qanchalik amalga oshirilganligi haqida men ishonchim komil emas, lekin bu muammoning qiziqarli qiziqarli ta'rifi deb o'yladim.

5
qo'shib qo'ydi
@ Stéphane Chazelas - bu , lsacl uchun // faqat nazorat bo'lishi kerak.
qo'shib qo'ydi muallif Bill Comer, manba
@ StéphaneChazelas - va u erda: MKS Toolkit porting mahsulotlarini pipe() qo'llab-quvvatlamaydi? Ha, MKS Toolkit portingi mahsulotlarini pipe() qo'llab-quvvatlaydi. Win32 UNIX FIFO'dan butunlay boshqacha bo'lgan nomlangan quvurni belgilaydi. Win32 deb nomlangan quvurlar bir nechta mijozlar o'zlarining juftlik tamponlari bilan bir server ilovasiga ikki tomonlama aloqa o'rnatishga imkon beradi. Mijozlar va server turli mashinalarda bo'lishi mumkin. open ("// server/pipe/") bilan Win32 nomlangan trubalarga kirishingiz mumkin.
qo'shib qo'ydi muallif Bill Comer, manba
@ Stéphane Chazelas - Men faqat juda mos kelmasa, yoki ixtiyoriy ravishda qismini tashlab ketgan bo'lsam, bu faqat nazorat edi, ammo MKS ro'yxatga olish kitobi buyrug'i, Ushbu shakl yoki i // ni tushunish uchun. MKS kiti Interixdan oldingi bo'lgan va MS ning 1/2-versiyalari uchun yuborilgan MS edi, shuning uchun Interix bunday asosiy narsa uchun mos keltirilgan sintaksisini qabul qilgan bo'lishi kerak.
qo'shib qo'ydi muallif Bill Comer, manba
@ StéphaneChazelas - juda. Men u bilan aloqani almashtirmoqchiman, lekin oxir-oqibat u oz fikrga asoslangan va aslida manba sifatida ishlamaydi ... lekin sharhni yo'q qilmang, iltimos?
qo'shib qo'ydi muallif Bill Comer, manba
Qanchadan-qancha yaxshi o'qish bu yerda Interix/Windows POSIX quyi tizimi haqida ham
qo'shib qo'ydi muallif Stéphane Chazelas, manba
XENIXda POSIX quyi tizimi yo'q , Windowsda AFAIK bor edi. XENIX Unix edi (dastlab AT & T litsenziyasini sotib olgan Unix V7 asosida).
qo'shib qo'ydi muallif Stéphane Chazelas, manba
Qanday bo'lmasin, //foo/bar dan foydalanish haqida so'z yuritilmaydi. Men Windows POSIX quyi tizimini yoki Interix ularni hozirgacha ko'rib chiqadigan kuchli dalillarni topmadim.
qo'shib qo'ydi muallif Stéphane Chazelas, manba

Boshqa dastur: Blender loyiha katalogiga mos yozuvlar sifatida // ga egadir. .blend fayl saqlanadi). Bu erda tegishli qo'llanmada .

Unix bo'lmagan operatsion tizimlar uchun (ya'ni, Windows) ham xuddi shunday.

5
qo'shib qo'ydi

In the 1980s, SEL/Gould had a Unix operating system called UTX-32 in which //host/path was equivalent to /net/host/path in Solaris; i.e., remotely access path path on host host.  I can't find any documentation on it, so I don't know whether this was RFS or parallel evolution (or whether AT&T stole acquired it from Gould).

4
qo'shib qo'ydi
Ko'rinib turganimdek, mening hujjatimdagi hujjat qog'ozga ega bo'lishi ehtimoldan yiroq emas, lekin juda ko'p narsa yo'q - (1) ko'p ixtiyoriy hujjatlarga ega bo'lgan Ever ni eslamayman (men besh daqiqali og'zaki tushuntirish eslayman ); (2) hatto bo'lsa ham, men uni uyga olib ketmagan bo'lardim; (3) uyga olib kelsam ham, oxirgi 30 yil ichida uni bir muddat tashlagan bo'lardim; va (4) hatto bo'lsa ham, men uni topa olmasligim mumkin. Oh, shuningdek, (0) men javobimni yubormasdan oldin besh daqiqa Googling (foydasiz) o'tkazdim.
qo'shib qo'ydi muallif Rob Gilliam, manba
Rahmat. UTX-32 da bu kodni (//host/path ) qandaydir tasavvurga ega bo'lasizmi?
qo'shib qo'ydi muallif Stéphane Chazelas, manba

POSIX A.4.12 usuli uchun Mantiqiylik ga tegishli. Ruxsatnoma 9 va 10-bandlar:

Ba'zi tarmoqli tizimlarda qurilish /../hostname/ boshqa hostning ildiz katalogiga murojaat qilish uchun ishlatiladi va POSIX.1 ushbu xatti-harakatga ruxsat beradi.

     

Boshqa tarmoqli tizimlar shu maqsadda foydalanish uchun//hostname nomini ishlatadi; ya'ni, er-xotin boshlang'ich kesish ishlatiladi.

// "tarmoq ildizi" deganini tasdiqlash uchun ko'rinadi yoki hech bo'lmaganda qoida POSIX-ga kiritilgan degan fikr edi.


Qoidalar / boshlangan yo'lning o'rtasiga // ning har qanday ma'nosini olib tashlash uchun amal qiladi Pathname:

... since non-leading sequences of two or more characters
are treated as a single , ...

Albatta, bir // boshlangan Pathname, Pathname (boshida emas) ichida // foydalanishni kengaytirishi yoki o'zgartirishi mumkin. Bunga POSIX.1 imkon beradi. Bu oxirgi yo'l faqatgina // ruxsat etilganligini Pathname boshida ekanligini tasdiqlaydi.

4
qo'shib qo'ydi

I have a vague memory that the //host/path notation was used on AT&T SysV.3 as part of its RFS Remote File Sharing implementation. This was eventually abandoned around the time SysV.4 was released in favour of the simpler but more popular NFS from Sun Microsystems.

Biroq, sintaksisga biron-bir aniq ma'lumot topa olmayapman va hozir ko'rib chiqqan hujjatlarim, foydalanuvchining masofaviy kompyuter nomini ochiq-oydin ko'rsatgan fikri joyning mustaqillik printsipiga zid kelishi mumkinligini ko'rsatmoqda.

References 1. RFS Architectural overview

4
qo'shib qo'ydi
Eslatma uchun rahmat. Bu "ko'rib chiqilgan hujjatlarim" ning bir qismidir, shuning uchun siz bunga qarshi bo'lmasangiz, men unga havola qo'shaman. Men hali bu haqida o'ylayapman; kelgusi kunlarda menga kelishi mumkin.
qo'shib qo'ydi muallif roaima, manba