Ask Your Question
1

'> soubor'

asked 2014-11-20 18:51:38 +0100

Juraj Šedivý gravatar image

updated 2014-11-20 20:24:18 +0100

Dneska jsem na cviku z PS1 mimoděk zkusil (v Bashi, na školním Gentoo) jednu "úžasnou fintu" (thanks, Google) a sice > soubor, v domění, že to je cca. ekvivalentní touch soubor.

Zjevně nebylo :) Nevím, co se přihodilo, ale při následném ls mi celý proces zamrzl (nic nevypsal), na ^C, ^Z ani kill žádná reakce. Grafický file manager (Thunar, nebo co to je?) při přístupu do inkriminované složky taky mrznul.

Následné rm soubor ale kupodivu (zjevně) proběhlo v pořádku, resp. opětovné volání vypsalo error (takže to asi fakt smazal?), ale ls byl pořád "rozbitej", takže stoprocentně nevím. Na Fray se tohle nestalo, na domácím Xubuntu taky ne.

1) Co teda přesně dělá to přesměrování, když vlevo nic nemá?

2) Proč jsem rozhasil školní Gentoo a ty další dva systémy ne?

Díky :)

edit retag flag offensive close delete

Comments

Neřeknu ti, co se stalo, ale jak zde uvádí, mělo by se používat : > soubor. Příkaz > soubor prý nemusí fungovat všude.

Greg ( 2014-11-20 19:48:02 +0100 )edit

1 Answer

Sort by » oldest newest most voted
4

answered 2014-11-20 20:06:59 +0100

Ve většině (snad) shellů bude > soubor ekvivalentní s : > soubor. Respektive dojde k přidání té dvojtečky. Pokud bychom byli v nějakém z těch ostatních shellů, tak kdo ví. Pravděpodobně by se stalo něco jako command not found nebo vůbec nic. Nespouštíme totiž žádný příkaz (osobně bych řekl, že je to ekvivalent stisknutí enteru na prázdné řádce).

Jinak ono "magické" : > soubor je ve skutečnosti true > soubor, takže se vlastně pustí program true, co nic nevypíše (proto bude soubor prázdný) a vrátí nulu.

Pozor: není to ekvivalent k touch. Tohle smaže obsah souboru. Ekvivalent k touch soubor je spíš : >> soubor.

Školní Gentoo pravděpodobně zamrzlo na přístupu k souborovému systému, kdy se tam nějaká chytristika snažila udělat náhled k prázdnému souboru nebo tak něco. Tušil bych, že reboot by to opravil.

edit flag offensive delete publish link more

Comments

Hm... věru podivné. Zkusím to příště zreplikovat, jestli to nebyla přechodná záležitost. Tím "true" si ale nejsem jistý, jestli je toto relevantní specifikace: http://pubs.opengroup.org/onlinepubs/009695399/utilities/colon.html Ale díky za tip, i za to objasnění s touchem, to mi uniklo. Co na to bashový mág @hody? :)

Juraj Šedivý ( 2014-11-20 20:41:13 +0100 )edit

Podle http://unix.stackexchange.com/questions/34677/what-is-the-difference-between-and-true to může být obojí - na některých Linuxech je to totéž, na jiných to má drobné rozdíly.

Josef Kokeš ( 2014-11-20 20:44:51 +0100 )edit

> soubor je ok ; touch lepe simuluje >> soubor; Chyba kterou popisujete byla zpusobena chybou site (pc bezi ze site)...

hody ( 2014-11-26 17:53:31 +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-20 18:51:38 +0100

Seen: 199 times

Last updated: Nov 20 '14