Loading [MathJax]/extensions/tex2jax.js
Ask Your Question
1

cat file1 file2 > file1

asked Nov 6 '14

Gabriel gravatar image

updated Nov 6 '14

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ěď

add a comment

2 Answers

Sort by » oldest newest most voted
1

answered Nov 6 '14

hody gravatar image

updated Nov 6 '14

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

link

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 (Nov 8 '14)
add a comment
0

answered Nov 6 '14

Josef Kokeš gravatar image

updated Nov 6 '14

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).

link

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 (Nov 6 '14)
add a comment

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: Nov 6 '14

Seen: 279 times

Last updated: Nov 06 '14