scp nem szeretni szóköz

Fórumok

scp nem hajlandó letölteni szóközös könyvárban levő szóközös fájlt.
izézőjel sem jó, \ sem felel meg neki.
Hogyan kell akkor megadni az scp-nek a szóközös remote fájl helyet?

Hozzászólások

Off: Én vagyok az egyetlen aki szerint nagyon nem kellene szóköz, spéci karakter stb. a fájl névbe, akár rendszer szinten kellene tiltani? Én ha nagyon elválasztás kell akkor a szokásos oo class nevezék módot használom, szóköz helyett nagybetű. Ha más által hagyott szemét miatt van a probléma akkor bocsi.

Azt kéne eldönteni, hogy az adott oprendszerben van-e Unicode támogatás.

Ha nincs, akkor oké, ne használjunk Unicode karaktereket. ha viszont van, akkor nincs kifogás, hogy az "á" különb, mint a "☮".

Bizonyos Unicode támogatással rendelkező rendszereken egyébként fel sem merül a kérdés

Gondolom tudod, h ez a foto mekkora csusztatas. Nem arrol van ugyanis szo, h a grafkus feluleten meg lehet-e jeleniteni egy kriksz-krakszokat tartalmazo fajlnevet, hanem hogy egy eredendoen karakteres feluleten hasznalt alkalmazasnal mekkora problemat okoznak ezek a kriksz-krakszok. Es igen, tudom, hogy az a gond, hogy meg mindig meg kell kulonboztetni karakteres es grafikus feluletet.

Szerintem az együttműködési készséggel van a gond. Nem csak "bizonyos unicode-os" rendszeren működik, nem csak grafikus, hanem karakteres felületen is.
De ha pl. scp-vel másolok, akkor a távoli rendszer képességeire is figyelemmel kell lennem, amit vagy ismerek, vagy nem.

Gondolom az nem okoz gondot, hogy az amerikai kollégákkal angolul menjen a kommunikáció, a magyarokkal magyarul, vagy angolul. Amikor meg mindenféle náció előfordul, akkor keressünk valami közös nyelvi minimumot (vagy annak maximumát). Példa az önkorlátozásra, ami átvihető a kommunikáció egyéb területeire is. Mindenki olyan fileneveket akarjon használni, amit az adott ökoszisztéma képes kezelni.

Pl. a Windows is POSIX, persze csak bizonyos feltételekkel. Ahol "P", a portable.
Van olyan eset is, hogy unikódos szöveg kilóg pl. az adatbázis mezőméretből, vagy a filerendszer filenév-hosszból (opsz, a FAT elég korlátos lehet bizonyos unikódos oprendszeren is).
Szóval, a csak mert megtehetem, szerintem még nem elég ok.
Egyébként alább látszik, megtehetném - de fel sem merül (megvallom a jelet egérművelettel másoltam a terminálba).


rka@probook:~$ mkdir "alma belma ☮"
rka@probook:~$ touch "alma belma ☮/☮ Hello ☮"
rka@probook:~$ mkdir alma\ zelma
rka@probook:~$ scp localhost:'alma\ belma\ ☮/☮\ Hello\ ☮' "alma zelma"/
rka@localhost's password: 
☮ Hello ☮                                                                                     100%    0     0.0KB/s   00:00    
rka@probook:~$ ls -la alma\ zelma
total 8
drwxr-xr-x    2 rka rka 4096 Mar 21 14:17 .
drwx--x--x+ 110 rka rka 4096 Mar 21 14:16 ..
-rw-r--r--    1 rka rka    0 Mar 21 14:17 ☮ Hello ☮

--
Zahy, veled egyetértek

Szerintem meg az egy teljesen normális elvárás, hogy használhassam már a nyelvemben található betűket.

Sajnos pont a világ egyik legszűkebb betűkészletű nyelve lett az info alapja, ezért azt gondoljuk, hogy normális, hogy csak az megy, de igazából nem, ez sosem volt normális, mindig is szar volt, csak már beleégett az emberek agyába, hogy ez így jó.

Disclamer: én sem használok ilyet filenévben, sőt, a spaceeket is cserélem, mert már megszoktam, de ettől még nem lesz hülye, aki szeretné a gyerekéről készült képet Ödönke.jpg-nek nevezni, nem odonke.jpg-nek

Ennyi erővel elvárhatnánk azt is, hogy dir/ls helyett könyvtár/lista paracsok működjenek. Vannak szabályok, ha tetszik, ha nem. Kb, amikor valami elcseszett backupból tolta vissza a júzer a dolgait w7 alá és egy könyvtárat sem tudott megnyitni. (Már nem emlékszem, azt hiszem ! jelek kerültek bele -de lehet valami más karakter volt- és a win nem volt hajlandó sem megnyitni, sem átnevezni. Live lnux alól kellett egy scripttel helyre rakni.)
üdv: pomm

A 852-es kídlap telepötúsa sikeresen befejezádétt

Na de miért kéne magunkat hülye szabályok közé szorítani?


joco-macbookair2:~ joco$ alias könyvtár=ls
joco-macbookair2:~ joco$ könyvtár
Applications	Documents	Library		Music		Public
Desktop		Downloads	Movies		Pictures

Nem kell elcseszett szoftvereket használni. Sambára, Azure-ra, mindenhova tolom az ékezetes és szóközös fájlneveket, mert ez így szép és jó. Nekem. Elvárom, hogy működjenek, és működnek is. Akinek jobban bejön az egyszeru_fajlnev.txt, hajrá, azt sem tiltja senki. Meg lehet próbálni megtiltani orosz, japán, stb. kollégáknak a saját betűik használatát, de attól nem fejlődik a világ sehova.

--

Biztos előjön a barlangból pár régi motoros BOFH, aki még PDP-11-et vagy hasonlót használ, hogy rámmorduljanak, de őket leszámítva szerintem ma már nincs olyan, hogy egy OS vagy library ne támogatna Unicode-ot. Sok-sok év alatt végre eljutott a programozók agyáig. Mondjuk kicsit elkanyarodtunk, mert eredetileg nem ékezetes betűkről, hanem egyszerű szóközökről van szó. Aki shellbe van ragadva, annak sorry, ez egyszerűen egy ilyen világ, tessék escape-elni. Nagy ritkán van úgy, hogy pl. egy regex miatt muszáj bash+grep kombót ragadnom, hát minden alkalommal jól lefáraszt az a sok \. Általában vannak kényelmesebb eszközök. SCP-re biztosan.

--

Szoval ha en talalkozom egy szoftverrel, aminek a legutolso (amugy elvben aktivan tamogatott, fejlesztett) verzioja szarul kezel ekezetes betuket, akkor ki a hulye? En, te, vagy a fejleszto? Es ha nincs helyette jobb, ezert ezt kell hasznalnom akkor megjavitod nekem? Ha raadasul nem is egyetlen ilyen szzoftverrol beszelek, hanem tobbrol, akkor mi van?
(Ami meg a bash+grep es sok \ -t illeti, meg kell tanulni hasznalni, lehet nem kell annyi \ .)

No nézzük, mi a helyzet azzal, ha egy OS támogatja a Unicode-ot, de teljesen. Legalábbis itt fentebb az szerepelt, hogy olyan nincs, hogy csak félig. Most megpróbáltam egy többé-kevésbé (nem én felelek érte, ezért nem tudom) up-to-date magyar nyelvű W7Prof-on létrehozni egy halom (pontosan 4 db) fájlt, amiknek nevében van szóköz, kis- és nagybetű és leginkább egy kupac ekezetes karakter is. A fájlok neve szépen sorban:

öt szép szűzlány őrült írót nyúz.txt
ÁRVÍZTŰRŐ TÜKÖRFÚRÓGÉP.TXT
jött árvíz tűzvész rút gümőkór.TXT
JÖTT ÁRVÍZ TŰZVÉSZ RÚT GÜMŐKÓR.txt

no első probléma, hogy a 4-t már nem tudom létrehozni, mert nyafog az OS, hogy van már ilyen nevű fájl. Szerintem ugyan nem ugyanaz a két név, de ha jól tudom, itt alapból a kis- és a nagybetű ugyanaz. Azaz a 4. fájl neve ... KÓR-2.txt lett a békesség kedvéért. Ezek után Exploder-ben szépen kijelöltem mind a négyet, majd a jobb gomb, Küldés / Tömörített mappa menüponttal csináltam egy zip fájlt belőle. (Csak hogy ne lehessen belekötni abba, hogy winzip, winrar, egyéb nem MS-termék játszott szerepet.) Az így létrejött zip-fájlt átviszem Linux alá, és belenézek - szigorúan parancssorból, mert csak. Három különböző eszközzel is belenézek: "unzip -Zv'" (InfoZip v6.00), "7z l -slt" (p7zip v9.20) valamint "hexdump -C" (util-linux-2.19.1). És mit ad isten azt látom benne, hogy az összes rohadt ékezetes karakter elveszett, és helyettük baromságok látszanak. Kivétel nélkül az összes ékezetes karakter 1-byte-os lett. Valaki elmagyarázná, hogy ez milyen kódolású Unicode? És mit csinál majd ezzel a szarral egy angol vagy épp egy orosz nyelvű Win?
Második lépésként megcsináltam tök ugyanezt Winzip-pel is, pont ugyanaz az eredmény.
(És hab a tortán: korábban egy másik - ha jól emlékszem angol nylvű - Wines gépen is csináltam ilyet, és az eredmény az volt, hogy bizonyos fájlneveknél "fat", más fájlneveknél pedig "ntfs" jelzést mutatott az unzip -Z , és amelyik fat volt, azt nem tudta értelmesen kicsomagolni, amelyik ntfs-tipusú volt, azt meg igen, igaz ott nem is 1-byte-os ékezetes karakterek látszottak a hexdump kimenetében.) Ezek után ugyanezt eljátszom az ellenkező irányban, infozip-pel becsomagolom ezeket a szép kis UTF-8-as fájlnévvel rendelkező fájlokat, átküldöm a Win-re, és nem tud vele mit kezdeni. A 7z pl. lehetőséget biztosít arra, hogy zip kimenet esetén ( -tzip opció ) beállítsam, hogy a fájlneveket UTF-8-ban tárolja le (-mcu=on paraméter) - az más kérdés, hogy UTF16-módot kapcsol be.Eredmény: ugyanúgy nem tud vele mit kezdeni a Windows (illetve hát tudni tud, csak az ékezetes karakterek heélyett lesz valami szar).
Összefoglalom: Elvben mind a két rendszer Unicode-ot használ, ráadásul vagy 10-15 éve ez ZIP fájlban is kéne hogy rendesen menjen, osztán máris előállt egy inkompatibilitási hiba az ékezetes fájlnevekkel.

Mm-hm, hát ne olyan tömörítési szabványt használj, ami hivatalosan nem támogatja a Unicode-ot.

https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT

Van olyan tömörítőprogram (elég sok), ami belegányolja a szabványos .zip-be a Unicode-ot, de mint tudjuk, a .csv-t is lehet explode-dal olvasni. _Általában_ működik is. :)

Hol is? A changelogra gondolsz, miszerint "Added option for Unicode filename storage"?

Görgess le a szóban forgó részhez, ott azért elég sok "may be", "may use", "should", stb. megfogalmazást találhatsz, majd mindezt a jól hangzó "The choice of which storage method to use when writing a ZIP file is left to the implementation." (értsd: csináljatok, amit akartok) mondat zárja.

Vagyis ha mondjuk egy windows-os 7-zippel csinálsz egy unicode-os .zip-et, azt egyáltalán nem biztos, hogy a linuxos unzip parancs mondjuk fájlnév-helyesen fogja tudni kibontani.

Úgy látom, Windows-1250-nel vannak kódolva a fájlnevek. Ez a szar a 8-bites kódlapokkal, kb. lehetetlen őket megkülönböztetni metadata nélkül. Hülye a ZIP, de hülye a Windows is, hogy hagyja. Látom más írta, hogy a Windows 10 hibát ír ki ilyen esetben, az legalább korrekt.

--

A fejlődés égisze alatt úgy döntöttek a fejlesztő kollégákok, hogy arra bátorítják a gyártósort, kezdjék el használni mindazon karaktereket a szabad beviteli mezőkben (van bőven), amelyek nekik szimpatikusak.

Megkérdezhettem volna, hogy mi a francnak, mikor 10 fogorvos közül 9 nem tud különbséget tenni a hosszú és rövid magánhangzók között, de tudok én diszkrét lenni, ha bízom a tanulságos kimenetelben.

Eljött a konkretizálás pillanata: milyen hosszúak legyenek az egyes mezők, hogy biztosan beférjen mindaz, amit beírni akarhatnak, és a mezők összhossza ne haladja meg az adatbázislap méretét.
Tervezési segédlet gyanánt csatoltam az utf-8 specifikációját.
Itt lehetett volna statisztikázni, hogy az eddig feltöltött szövegmaxok az átlagos árvíztűrőtükörfúrógépterheltség mellett mit jelentenének az eredetileg is faltól-falig kihasznált lapokban, de erre így már nem volt elszánás, amit meg is értek: ha szocreál felfogás is, a funkciótlan szépség tényleg nem ér annyit.

Volt szerencsém ezer éve nem foglalkozni lapméretekkel (értsd, a tárhely igazodott az üzleti igényekhez, nem fordítva). Speciális helyzet speciális megoldást kíván, pl. varbinary(456)-ban tárolsz pont annyi bájtot, ami belefér, és a perzisztencia rétegben csinálod az UTF-8 konverziót. Sok framework alapból meg tudja neked mondani, hogy adott string UTF-8-ba kódolva hány bájt. Persze az user meg fog lepődni, ha egy ő betűtől 2-t ugrik a hátralevő bájt számláló. Vagy lehet használni ISO-8859-2-t, vagy akár egyedi kódlapot is, ha már annyira rá akarunk menni a bájtokra.

--

+1

Egyetértek. Szar világ, ha fájlnevekben, dokumentumokban vagy máshol csak ASCII karaktereket lehet használni. Nem a hatvanas években élünk.

-----
„Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben.”
rand() a lelke mindennek! :)
Szerinted…

No, ezt az aliasos hülyeséget egy időben kipróbáltuk mi is... :)
És akkor mi van? Elvárhatod, de ha nem megy szívatod magad. Csinálhatok egy ilyen nevű fájlt (Meg\**⁄lepi.?!?), ami tartalmazza a meglepi buli helyét. Szerinted hányan jönnek el azok közül, akik win alatt nyitnák meg? Miért nem lehet?

A 852-es kídlap telepötúsa sikeresen befejezádétt

Hidd el, ha lenne rá valós igény, akkor meglenne az is (nekem vannak is emlékeim ilyenekről egyébként). Megvan pl. hogy a lokalizált excel függvénynevei lokalizáltan vannak? most az más kérdés, hogy van valami, amit darabtelinek hívnak, meg hogy hosszan szívás volt a lokalizáltan készült izék másban való megnyitása, de ezek csak implementációs részletkérdések, volt rá igény, hogy szuahéli barátunk is értse mit csinál. Azt kell észrevenni, hogy az informatika nem egy önmagáért létező valami, hanem a felhasználóik igényét kell megoldja, alapvetően nem az ő dolga diktálni a szabályokat- Az meg egy igen valós igény, hogy az adatokat a saját nyelvemen tudjam kezelni, azzal a géppel, aminek ez a fő funkciója. Értem én, hogy ez technikailag egy csomó zűrt okoz, de azért azt látni kell, hogy azt a zűrt a szakma magának csinálta, mikor az elején hozott egy rossz döntést, aztán sokáig tologatta maga előtt, aztán már durván nyaknál volt a szar, mire hozták a szivattyút. Egyébként mára egy-két még mindig büdös pocsolyát leszámítva kb sikerült is megoldani imho.

Éljen a „fokabel” izé, főkábel… vagy fókabél…?
Szerintem sehol se használjunk más karaktert, csak 1-et és a 0-át. Azt már csak tudja kezelni minden.

-----
„Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben.”
rand() a lelke mindennek! :)
Szerinted…

Hali!

Bocs, de nem leszek pozitív a hozzászólásommal, de aki fájl-könyvtár névben szóközt használ, az sikeres ember nem lehet!

Üdv:
Feri

Hali!

Nincs semmi bajom azzal, hogy 2015 van. Egyszerűen túl öreg vagyok és még él az emlékeimben, hogy anno 90-es években mennyit szoptam az "istenverte" karakter kódolásokkal. Mondjuk egy 3.12-es novell szerveren amikor ~70 gépről okádták rá fel az adatokat, és minimum a 20 százalékára nem tudtam "ráhatással lenni" a kliens gépeknek... Gizike feltöltötte, Józsika megnyitotta és mentette, majd Gizike nyomtatta volna(!) ha nem lett volna elcseszve az egész egy nyomorult kliens oldali karakter kódolás miatt... e-mail tárgy mezőben pl a mai napig nem használok ékezetet, holott ide is azzal írok... egyszerűen be kell látni, hogy nem csak a Te képességeiden/lehetőségeiden múlnak néha a dolgok és jobb a békesség.

Üdv:
Feri

Fejlesztő vagyok és felhasználó. Fejlesztőként törekszem arra, hogy az általam készített alkalmazások teljesen Unicode-kompatibilisek legyenek, felhasználóként pedig elvárom ezt az általam használt rendszerektől.
Tudomásom szerint a jelenleg támogatott Windows, OSX, Linux, BSD változatok mindegyike alkalmas arra, hogy megbírkozzon a Unicode-dal. Vagy legalábbis alkalmassá tehető rá.

Régen én is kiszedtem a szőközöket és az ékezeteket a fájlnevekből, de egy ideje nem érdekel már. Felhasználóként hadd ne az én gondom legyen már ez, macera és információvesztés is (lásd a fenti „fokabel” példát). Írtam eleget VT-100 kompatibilis soros terminálon, nem okoz gondot a repülő ékezetes ékezetes szöveg írása és olvasása, de haladjunk már túl ezen és fogadjuk el, hogy történelem.
XXI. század van, vagy mi a szösz.

-----
„Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben.”
rand() a lelke mindennek! :)
Szerinted…

Azért már a win95-ben is működött a Program Files mappa, még a cmd-ben is lehetett vele operálni, sőt tovább megyek a Dos 6.22 is tudta kezelni a spece-t. Elvárható lennne 20-30 év múlva, hogy egy linuxos program is megbírkózzon egy kibaszott space-el, vagy bármilyen unicodos fájlnévvel. Szerintem.

Szerintem az, hogy a kedves felhasznalo nem tudja, hogy hogyan kell azt a szart begepelni, az nem a szoftver hibaja. Korabban mar leirtam a megoldast, masok meg is magyaraztak a mukodest, innentol kezdve nincs semmilyen szoftverhiba a szokoz kezeleseben.
Jelzem ahogy a szoftvertol elvarhato, hogy megbirkozzon vele, a felhasznalotol is elvarhato, hogy tudja mit csinal.

A helyedben lelkigyakorlatot végeznék, készülvén a junikódos fájlnevekre. ;)

A helyi gépen természetesen a shell értelmezi a speciális karaktereket (szóköz mentén darabol, stb.)

Ami kevésbé triviális, de tudni kell, az az hogy ezt az scp a távoli gépen is megteszi. Csak így válik ugyanis lehetségessé például a * wildcard használata távoli fájlnevekre kiegészítéssel, vagy akár több kézzel felsorolt fájl egy menetben, egyszeri autentikációval átmásolása (scp remote:"egyik másik" .). Ezért van szükség szóközt tartalmazó fájlnév esetén kétszeri escape-elésre, hogy kétszeri kibontás után ottmaradjon a literális, fájlnév részét képző szóköz. Remélem érthető :)