Portál AbcLinuxu, 30. dubna 2025 13:25
.htaccess.
(s tečkou na konci) a on to přejmenuje na .htaccess (asi se snažili vyřešit problém zmiňovaný v příspěvku A dokázaly to dotáhnout tak daleko, že ani nedokážou využívat vlastností svých vlastních souborových systémů.Kde ve vlastnostech NTFS je napsáno, že název souboru může končit tečkou? Protože to, že vám dovolil linuxový ovladač pro NTFS vytvořit takový soubor, neznamená, že je to v souladu se specifikací NTFS. Když si vhodným nástrojem (třeba hexaeditorem) vytvoříte na linuxovém souborovém systému soubor, který bude mít v názvu lomítko, linux s tím taky nebude umět pracovat. Ale není to chyba linuxu, je to chyba toho nástroje, který dovolil vytvořit název, který je v rozporu se specifikací.
Do not end a file or directory name with a space or a period. Although the underlying file system may support such names, the Windows shell and user interface does not. However, it is acceptable to specify a period as the first character of a name. For example, ".temp".
Když si v linuxu vytvoříš nějaký obskurtní název z cmd, tak spousta klikátek s tím bude mít problém, nebudou to umět přejmenovat, vstoupit do adresáře atd.Tak to bude z definice chyba tech klikatek a bude duvod je upravit. Ve Windows je to tvoje chyba, protoze je to dokumentovana vlastnost systemu.
A tak je to se vším, proto je nejlepší se držet nějakých konvencí a nespoléhat na to, že vývojář ošetří 100% výjimek.Ale kdo by, sakra, cekal takovou vyjimku? V roce 2017! V nazvu souboru/adresare muzes mit temer jakykoliv paznak z Unicode. Muzes tam mit i tecku, dokonce nekolikrat, tak proc nemuze byt ta tecka na konci nazvu souboru?
$ touch "./-f ľščťžýáíé" $ ls ./-f\ ľščťžýáíé ./-f ľščťžýáíé $ rm ./-f\ ľščťžýáíé
--
. Tenhle problém ve Windows nenastává triviálně z toho důvodu, že nemáš (použitelnou) příkazovou řádku.
Co se týče mezer nebo Unicode znaků, žádný problémy nepozoruju.
Například konstrukce typu for f in *jpg; do ...; done.IIRC tahle konstrukce by neměla mít žádný problém s mezerama, problém nastane až když použiješ něco jako
for f in $(ls)
. Případně samozřejmě když proměnnou s mezerama předáš bez uvozovek. Ale přijde mi, že to už jsou prostě problémy skriptování, což se moc nedá srovnávat s běžným použitím GUI ve Widlích.
Souhlasim, že copy-paste je opruz, ale od toho je doplňování Možná to umí nějaký shell ošetřit, ale když mám soubor fotka 1.jpg, tak f v té smyčce nejdřív bude mít hodnotu fotka a pak 1.jpg.A zkoušels to? Zajímalo by mě, který shell se takhle chová. Zkoušel jsem u sebe na Archu
zsh -f
a bash --norc --noprofile
a na FreeBSD klasický předpotopní sh
. Na těchto třech se for loop s hvězdičkou přes soubory s mezerou chová neproblematicky, tj:
bash-4.4$ for f in *
> do
> printf "%s\n" "$f"
> done
bar baz
foo
AFAIK IFS
se používá právě pro případy, když chceš loopovat přes string / výstup nějakýho příkazu, ne pro globbing.
Nechceš použít rd, protože máš strach o data, ale používáš NTFS na Linuxu. Au.NTFS podpora na Linuxu je IMHO překvapivě dobrá. Krom podpory mountování fs jako takového jsou navíc k dispozici chytré utility jako třeba
ntfsclone
- ani nevim, jestli tohle má nějaký ekvivalent ve Windows (nedivil bych se, kdyby to bylo něco jako SuperNTFSCloner™ Enterprise za $49.99).
Nevadí, že Windows neznáš, ale je trapné pak pindat.Beru, že to je zdokumentováno, dá se to dohledat a dá se to řešit. Nicméně pravdou IMHO i tak je, že to je prostě neintuitivní a retardované chování, což se nijak nezmění tím, že to zdokumentuješ. Tím se z toho stane akorát zdokumentované retardované chování a přijde mi celkem oprávněné se nad tím rozčilovat, člověku to celkem zbytečně komplikuje život...
ntfsclone
spuštěného z SystemRescueCD dělal převedení Win8 z klasického točivého disku na o kapku menší SSD (na větší je to o dost jednodušší). Spokojený majitel onoho notebooku byl následně velmi udiven, když jsem mu vysvětli, že všechno, co jsem použil, je v dispozici zdarma, protože on předpokládla, že (jak mu kdosi doporučil) bude potřeba drahý software na klonování diskú, konkrétně Acronis True Image, který je, pokud si dobře pamatuju, ještě dražší než oněch $49.99 C:\>mkdir pokus C:\>mkdir \\?\C:\pokus\pokus. C:\>dir C:\pokus Volume in drive C is System Volume Serial Number is FE40-D21E Directory of C:\pokus 11. 12. 2017 13:23 <DIR> . 11. 12. 2017 13:23 <DIR> .. 11. 12. 2017 13:23 <DIR> pokus. 0 File(s) 0 bytes 3 Dir(s) 16 570 544 128 bytes free C:\>rd C:\pokus\pokus. The system cannot find the file specified. C:\>rd \\?\C:\pokus\pokus. C:\>dir C:\pokus Volume in drive C is System Volume Serial Number is FE40-D21E Directory of C:\pokus 11. 12. 2017 13:23 <DIR> . 11. 12. 2017 13:23 <DIR> .. 0 File(s) 0 bytes 2 Dir(s) 16 570 478 592 bytes free C:\>
privadel jsem s tim k silenstvi nektere vsetecky, kteri chteli cist vsechno, co jsem napsalJasně, to se určitě stalo...
.{645FF040-5081-101B-9F08-00AA002F954E}
(jakoby příponou).
Docela překvapí, co se v ní ukáže.
--only-ascii-filenames
nebo co soffice '無題1 2.odt'
) na Gentoo funguje. V cs_CZ.UTF-8 i C locale.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.