Ask Your Question
1

cat file1 file2 > file1

asked 2014-11-06 14:53:27 +0100

Gabriel gravatar image

updated 2014-11-06 18:32:16 +0100

Josef Kokeš gravatar image

Ahoj, před přípravou na test jsem si hrál s příkazy a narazil jsem u toho i na cat file1 file2 > file1 což mi vyhodilo error. Nemohl jsem přijít na to proč, tak hážu dotaz do placu. Díky za odpověď

edit retag flag offensive close delete

2 Answers

Sort by » oldest newest most voted
0

answered 2014-11-06 18:28:57 +0100

Josef Kokeš gravatar image

updated 2014-11-06 18:45:21 +0100

Taky by mohlo fungovat cat file2 >>file1

Problém trochu je, že z otázky není moc poznat, co je vlastně otázka.


OK, teď už to poznat je. Vyplývá to z toho, že napřed musí shell dekódovat příkazovou řádku (co se od něj vlastně chce) a vykonat přípravné práce (např. otevřít výstupní soubor pro zápis a nastavit na velikost nula), teprve potom dojde ke spuštění požadovaného programu - který ovšem už v tu chvíli má první soubor prázdný a možná i nečitelný (podle toho, jestli to otevření pro zápis je exkluzivní nebo ne).

edit flag offensive delete publish link more

Comments

Moje otázka měla být, proč jsem nemohl přečíst ty dva jmenované soubory a uložit je do prvního.

Gabriel ( 2014-11-06 18:33:09 +0100 )edit
1

answered 2014-11-06 15:17:58 +0100

hody gravatar image

updated 2014-11-06 19:35:18 +0100

Takto spojit dva soubory neni mozne a muze za to interpratace shellu. Takze se cilovy soubor zkrati na 0 delku a az pak dojde k otevreni file1 kde jiz nic neni...

funkci reseni je treba :

  • cat file1 file2 | tee file1 #kde je videt i vystup

  • nebo ve vimu otevrit file1 a spustit :r file2

  • cat file2 >>file1

  • cat file1 file2 > file3 ; mv file3 file1

edit flag offensive delete publish link more

Comments

První varianta (cat file1 file2 | tee file1) nemůže fungovat. Pro malé soubory zdánlivě splní úkol, ale jak dlouhý je "malý" soubor nelze dopředu říci. Celé to zdánlivě funguje jen díky bufferu roury, deskriptorů a díky aktuální implementaci tee. Do file1 se tak skoro jistě zapíše začátek z file1 a celý file2, a nikdy není dopředu jasné, kolik bude zapsáno dat celkem.

Defugio Auctoritatem ( 2014-11-08 13:36:55 +0100 )edit

Your answer

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!

Add answer

[hide preview]

Question tools

Follow
1 follower

Stats

Asked: 2014-11-06 14:53:27 +0100

Seen: 279 times

Last updated: Nov 06 '14