GNU/Linux >> Znalost Linux >  >> Linux

Použití Dash (-) místo názvu souboru?

Pro příkaz, pokud používáte - jako argument místo názvu souboru bude znamenat STDIN nebo STDOUT.

  1. Ale v tomto příkladu vytvoří soubor s názvem - :

    echo hello > -
    

    Jak mohu vytvořit - v tomto příkladu znamená STDOUT?

  2. A naopak, jak mohu vytvořit - znamená soubor s názvem - v příkladech jako:

    cat -
    

Přijatá odpověď:

Pomocí - jako název souboru znamená stdin/stdout je konvence, kterou používá mnoho programů. Nejedná se o speciální vlastnost názvu souboru. Jádro nerozpozná - jako speciální, takže všechna systémová volání odkazující na - jako název souboru bude použit - doslova jako název souboru.

S přesměrováním bash, - není rozpoznán jako speciální název souboru, takže bash jej použije jako doslovný název souboru.

Když cat vidí řetězec - jako název souboru s ním zachází jako se synonymem pro stdin. Chcete-li to obejít, musíte změnit řetězec, který cat vidí takovým způsobem, že stále odkazuje na soubor s názvem - . Obvyklý způsob, jak toho dosáhnout, je přidat před název souboru cestu – ./- , nebo /home/Tim/- . Tato technika se také používá k překonání podobných problémů, kdy se možnosti příkazového řádku střetávají s názvy souborů, takže soubor označovaný jako ./-e nezobrazí se jako -e například možnost příkazového řádku programu.


Linux
  1. Měření využití Ram programu?

  2. Žádná pomlčka, žádný spouštěč v Ubuntu 14.10?

  3. cPanel – využití šířky pásma

  1. cPanel – Využití disku

  2. Linux df příkaz

  3. Nejčastější dotazy ke cloudovým zdrojům

  1. sar:příkaz nenalezen

  2. Bash monitoruje využití disku

  3. Jak extrahovat soubor filename.tar.gz