Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Jakoby soubor/adresář neexistoval.  (Přečteno 3496 krát)

McKay

  • Aktivní člen
  • *
  • Příspěvků: 264
Jakoby soubor/adresář neexistoval.
« kdy: 18 Května 2015, 21:10:38 »
Ahoj, obracím se sem s dalším dotazem ohledně jednoho problému s umístěním programů do určité složky...
V adresáři "Domů" jsem si vytvořil vlastní složku kam umistuju všechny programy bez instalace např. serviio, freaarapid downloader atd... a když to do té složky umístím a chci spustit ten program tak mi to v terminálu vypíše že adresář, nebo soubor neexistuje, jestli je to přímo v adresáři "Domů" tak vše funguje, ale chtěl bych to mít roztříděné kvůli pořádku...

juwa2

  • Závislák
  • ***
  • Příspěvků: 4951
Re:Jakoby soubor/adresář neexistoval.
« Odpověď #1 kdy: 18 Května 2015, 21:38:16 »
Jak ho spouštíš?

McKay

  • Aktivní člen
  • *
  • Příspěvků: 264
Re:Jakoby soubor/adresář neexistoval.
« Odpověď #2 kdy: 18 Května 2015, 21:44:08 »
Spoustěl jsem ho ted pro odzkoušení v terminálu... jinak používám spouštěče...

juwa2

  • Závislák
  • ***
  • Příspěvků: 4951
Re:Jakoby soubor/adresář neexistoval.
« Odpověď #3 kdy: 18 Května 2015, 21:48:36 »
Běž do té složky  > otevřit Terminál zde > zadej název sp. souboru > enter.
Zkrátka špatně zadáváš cestu (nebo je chyba v syntaxi).

McKay

  • Aktivní člen
  • *
  • Příspěvků: 264
Re:Jakoby soubor/adresář neexistoval.
« Odpověď #4 kdy: 18 Května 2015, 21:49:48 »
Nemyslím si, že špatně zadávám cestu, soubor přetáhnu do terminálu, cesta je správně... Jak jsem psal, když je složka s programem přímo v adresáři "Domů" tak to funguje, když je program ještě ve složce např. /Domů/Programy/serviio, tak to nefunguje...
« Poslední změna: 18 Května 2015, 21:51:24 od McKay »

juwa2

  • Závislák
  • ***
  • Příspěvků: 4951
Re:Jakoby soubor/adresář neexistoval.
« Odpověď #5 kdy: 18 Května 2015, 22:03:34 »
To prostě není možné - není k tomu žádný důvod. Odstraň z názvů v celé cestě diakritiku, mezery nahraď podtržítkem.

Myrmica

  • Závislák
  • ***
  • Příspěvků: 1701
    • MYRMICA
Re:Jakoby soubor/adresář neexistoval.
« Odpověď #6 kdy: 19 Května 2015, 06:55:51 »
Napiš konkrétní příklad, jinak ti nelze pomoci.
Dej sem text spouštěče, a výpis adresáře, ve kterém ten program je:
Kód: [Vybrat]
cd ~/adresář_s_programem
ls -l
Stolní strojek: OS– UBUNTU 16.04 x86_64, MB ASUS P8 Z68-V/GEN3, Intel® Core™ i5-3470 CPU @ 3.20GHz × 4 , 16GiB DDR3, GeForce GTX 670...
Notebook: ASUS U53Jc OS– UBUNTU 16.04 x86_64, Windows 7, Processor – Intel Core i5-460M (2,53 GHz), Graphics – switchable NVIDIA GeForce 310M and Intel GMA HD

McKay

  • Aktivní člen
  • *
  • Příspěvků: 264
Re:Jakoby soubor/adresář neexistoval.
« Odpověď #7 kdy: 20 Května 2015, 21:07:26 »
Dobře, promiňte za zpoždění dostal jsem se k tomu až ted...
Chci spustit například serviio, spouštěč je v
Kód: [Vybrat]
/home/martin/Program Files/Nástroje- editory/serviio-1.5.2/binVýpis adresáře, ve kterém program je:
Kód: [Vybrat]
martin@ASRock-desktop:~$ cd '/home/martin/Program Files/Nástroje- editory/serviio-1.5.2'
martin@ASRock-desktop:~/Program Files/Nástroje- editory/serviio-1.5.2$ ls -l
celkem 100
drwxr-xr-x 2 martin martin  4096 kvě 20 21:01 bin
drwxr-xr-x 2 martin martin  4096 kvě 10 17:31 config
drwxr-xr-x 2 martin martin  4096 kvě 10 17:31 legal
drwxr-xr-x 2 martin martin  4096 kvě 10 17:31 lib
drwxr-xr-x 5 martin martin  4096 kvě 10 17:31 library
-rw-r--r-- 1 martin martin  3255 dub  8 21:35 LICENCE.txt
drwxr-xr-x 2 martin martin  4096 kvě 11 17:00 log
-rw-r--r-- 1 martin martin 10900 dub  8 21:35 NOTICE.txt
drwxr-xr-x 2 martin martin  4096 kvě 10 17:31 plugins
-rw-r--r-- 1 martin martin  4231 dub  8 21:35 README.txt
-rw-r--r-- 1 martin martin 45157 dub  8 21:35 RELEASE_NOTES.txt
martin@ASRock-desktop:~/Program Files/Nástroje- editory/serviio-1.5.2$
Text spouštěče, (vytvořil jsem malý skript, který spustí jak serviio.sh tak serviio-console.sh:
Kód: [Vybrat]
'/home/martin/Program Files/Nástroje- editory/serviio-1.5.2/bin/serviio.sh' & '/home/martin/Program Files/Nástroje- editory/serviio-1.5.2/bin/serviio-console.sh' Text z terminálu po pokusu spuštění skriptu:
Kód: [Vybrat]
martin@ASRock-desktop:~$ '/home/martin/Program Files/Nástroje- editory/serviio-1.5.2/bin/serviio.sh' & '/home/martin/Program Files/Nástroje- editory/serviio-1.5.2/bin/serviio-console.sh'
[1] 22300
basename: nadbytečný operand „editory/serviio-1.5.2/bin/serviio-console.sh“
Více informací získáte příkazem „basename --help“.
basename: nadbytečný operand „editory/serviio-1.5.2/bin/serviio.sh“
Více informací získáte příkazem „basename --help“.
Error: Could not find or load main class org.serviio.MediaServer
Error: Could not find or load main class org.serviio.console.ServiioConsole
[1]+  Ukončena 1             '/home/martin/Program Files/Nástroje- editory/serviio-1.5.2/bin/serviio.sh'
Ale jak říkám, jakmile to je ve složce "Home" tak to funguje normálně...
K tomu, že mám ty programy ve složce s názvem "Program Files", je to takový zlozvyk z Widlí  :D ;)
« Poslední změna: 20 Května 2015, 21:09:15 od McKay »

Jogi

  • Aktivní člen
  • *
  • Příspěvků: 139
  • Netrpím šílenstvím, užívám si ho !
    • Jogiho.cz
Re:Jakoby soubor/adresář neexistoval.
« Odpověď #8 kdy: 20 Května 2015, 21:42:41 »
Jak píše i juwa2 adresáře bez mezer, někdy to opravdu dělá problémy, v nejlepším i tu diakritiku. Osobně nepoužívám ani velká písmena, je to lepší při práci s terminálem.
Lenovo ThinkPad L450 [ Ubutnu 14.04 64bit ]
Lenovo ThinkPad R500 [ Ubuntu 16.04 64bit ]

McKay

  • Aktivní člen
  • *
  • Příspěvků: 264
Re:Jakoby soubor/adresář neexistoval.
« Odpověď #9 kdy: 20 Května 2015, 21:49:23 »
Ano, funguje to  :), jenom trošku zamrzí, že tomu vadí ta diakritika a mezery... Jinak díky moc  ;)
« Poslední změna: 20 Května 2015, 22:02:51 od McKay »

Myrmica

  • Závislák
  • ***
  • Příspěvků: 1701
    • MYRMICA
Re:Jakoby soubor/adresář neexistoval.
« Odpověď #10 kdy: 20 Května 2015, 23:05:05 »
Proboha co tě vedlo k takovémuto adresáři.
Kód: [Vybrat]
/home/martin/Program Files/Nástroje- editory/Už i Microsoft přišel na to, že to je blbost, akorát neví jak se toho zbavit.
Ano, funguje to  :), jenom trošku zamrzí, že tomu vadí ta diakritika a mezery... Jinak díky moc  ;)
Linuxu to v podstatě nevadí, pouze se s tím složitěji pracuje. Musíš při práci s takovými adresáři dávat pozor na moc věcí, Dát cesty do uvozovek(apostrofů) nebo před každou mezerou psát backslash "\", kontrolovat kódování skriptu a filesystému, aby si odpovídalo. Sledovat jestli jsem nepopletl malá a velká písmena.... A určitě ještě mnoho dalších věcí, které mě teď zrovna nenapadají... Navíc je to zbytečně dlouhé...
Vždyť by stačilo třeba jen:
Kód: [Vybrat]
~/programs/editors/
Stolní strojek: OS– UBUNTU 16.04 x86_64, MB ASUS P8 Z68-V/GEN3, Intel® Core™ i5-3470 CPU @ 3.20GHz × 4 , 16GiB DDR3, GeForce GTX 670...
Notebook: ASUS U53Jc OS– UBUNTU 16.04 x86_64, Windows 7, Processor – Intel Core i5-460M (2,53 GHz), Graphics – switchable NVIDIA GeForce 310M and Intel GMA HD

McKay

  • Aktivní člen
  • *
  • Příspěvků: 264
Re:Jakoby soubor/adresář neexistoval.
« Odpověď #11 kdy: 21 Května 2015, 05:20:06 »
Jop, takhle jsem to nějak překopal...

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re:Jakoby soubor/adresář neexistoval.
« Odpověď #12 kdy: 21 Května 2015, 10:05:13 »
V obou těch tvých spouštěcích skriptech je chyba v nepoužití uvozovek při práci s cestou ke skriptu. Budeš tam mít pravděpodobně něco jako:
Kód: [Vybrat]
basename ${BASH_SOURCE[0]}
basename $(pwd)
místo
Kód: [Vybrat]
basename "${BASH_SOURCE[0]}"
basename "$(pwd)"
tudíž shell při výskytu mezery cestu rozdělí na více částí a ty předá příkazu basename jednotlivě, místo vcelku. Určitě je lepší začít tady, než špatnému kódu přizpůsobovat vstypy. I tak je třeba se v názvech adresářů a souborů vyvarovat některých speciálních znaků, které použitý shell expanduje i ve dvojitých uvozovkách, jako například ten string "$" a samozřejmě jakékoli uvozovky.
« Poslední změna: 21 Května 2015, 10:48:12 od GdH »

 

Provoz zaštiťuje spolek OpenAlt.