Portál AbcLinuxu, 30. dubna 2025 13:23
Pomocí Firefoxu (verze 2.9.92-10.1 Firefox/3.0b2) jsem si včera stáhl nějaké soubory ze Semestru, což je školní server s užitečnými podklady ke studiu. Protože mám počítač doma a na koleji, a potřebuju mít adresář s dokumenty aktuální na obou, napsal jsem si script, který využívá rsync pro zkopírování příslušných adresářů na flash disk a pak další pro jejich synchronizaci na s druhým počítačem.
Jaké však bylo mé překvapení, když jsem po spuštění scriptu na flashdisku nové soubory nenašel...
Protože správně fungující synchronizace a záloha dat je pro mě velmi důležitá, začal jsem tedy hledat, kde může být chyba. Nejprve jsem si prošel log, který je vytvářen scriptem.
Škola/3. semestr/33f101/Přednášky/zivot podniku.ppt
Na první pohled nic zvláštního. Prozkoumal jsem tedy script, ale příkaz "rsync -av $path_Skola $path_flashka >> $log" včetně cest v proměnných se mi zdá správný, navíc až do teď funkční.
Zkusil jsem tedy v Krusaderu soubor přejmenovat (nastavení ignoruje příponu souboru a označní jen vlastní název). Při dalším průchodu scriptu se soubor na flashdisku opět neobjevil.
Všiml jsem si skutečnosti, že soubory stažené z internetu mají přístupová práva "rw-", kdežto soubory vytvořené na tomto počítači mají "rwx". Začal jsem si tedy hrát v terminálu...
A tady jsem objevil zradu. Při psaní příkazu cp ziv(TAB) vypadal výstup následovně:
nik@venice:~/Desktop> cp zivot\ podniku.ppt\ \ \ \ \
Mezery za příponou tedy způsobily, že příkaz ve scriptu vzal druhou mezeru jako druhý parametr, tedy místo, kam kopírovat.
Nyní jsem zkusil ten samý soubor stáhnout ze serveru pomocí Konqueroru. Stažený soubor byl zcela v pořádku, tj. bez mezer na konci názvu. Zdá se tedy, že si Firefox přidal mezery na konec názvu souboru. Vyzkoušel jsem ještě stáhnout nějaký soubor ze Světa hardware, tady se však problém neprojevil.
Vyzkouším ještě stabilní verzi Firefoxu a projdu si bugreporty. Poté pošlu bugreport nejspíše správci školního serveru.
EDIT: I stabilní verze Firefoxu pod Linuxem přidává na konec názvu souboru mezery, pod Windows je však Firefox v pořádku.
Tiskni
Sdílej:
nik@venice:~/Dokumenty/Škola/3. semestr/33f101/Přednášky> rsync 'marketingove rizeni.ppt ' /media/CORSAIR/ rsync: rename "/media/CORSAIR/.marketingove rizeni.ppt .ydjbPP" -> "marketingove rizeni.ppt ": Invalid argument (22) rsync error: some files could not be transferred (code 23) at main.c(977) [sender=2.6.9] nik@venice:~/Dokumenty/Škola/3. semestr/33f101/Přednášky> rsync "marketingove rizeni.ppt " /media/CORSAIR/ rsync: rename "/media/CORSAIR/.marketingove rizeni.ppt .wHtI3W" -> "marketingove rizeni.ppt ": Invalid argument (22) rsync error: some files could not be transferred (code 23) at main.c(977) [sender=2.6.9]Původní verze scriptu:
path_Skola="/home/nik/Dokumenty/Škola" path_flashka="/media/CORSAIR/nik/záloha/" log="zaloha_log.txt" rsync -av $path_Skola $path_flashka >> $logPokud použiji "$path_Skola" nebo '$path_Skola' (jak říká manuál rsyncu) je výsledek stále stejný (čili soubory se nezkopírují) viz zkouška s jedním souborem výše. Kopírování souboru pomocí Krusaderu v rámci stejného diskového oddílu je v pořádku, ale pokud dám zkopírovat soubor na flash disk vrací chybu: "Není možné zapisovat do /media/CORSAIR/marketingove rizeni.ppt ." Soubory bez mezer na konci kopírovat jdou. Stejný problém se vyskytuje i na jiných oddílech formátovaných jako FAT
check=value Three different levels of pickyness can be chosen: r[elaxed] Upper and lower case are accepted and equivalent, long name parts are truncated (e.g. verylongname.foobar becomes verylong.foo), leading and embedded spaces are accepted in each name part (name and extension). n[ormal] Like "relaxed", but many special characters (*, ?, <, spaces, etc.) are rejected. This is the default. s[trict] Like "normal", but names may not contain long parts and special characters that are sometimes used on Linux, but are not accepted by MS-DOS are rejected. (+, =, spaces, etc.)
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.