GNU/Linux >> Linux Esercitazione >  >> Linux

Utilizzo di trattino (-) al posto di un nome file?

Per un comando, se si utilizza - come argomento al posto del nome di un file significherà STDIN o STDOUT.

  1. Ma in questo esempio, crea un file con il nome - :

    echo hello > -
    

    Come posso creare - in questo esempio significa STDOUT?

  2. Al contrario, come posso creare - significa un file chiamato - in esempi come:

    cat -
    

Risposta accettata:

Usando - come nome file per indicare stdin/stdout è una convenzione utilizzata da molti programmi. Non è una proprietà speciale del nome del file. Il kernel non riconosce - come speciale così tutte le chiamate di sistema che fanno riferimento a - come nome file utilizzerà - letteralmente come il nome del file.

Con il reindirizzamento bash, - non è riconosciuto come un nome file speciale, quindi bash lo utilizzerà come nome file letterale.

Quando cat vede la stringa - come nome file, lo tratta come sinonimo di stdin. Per aggirare questo problema, devi modificare la stringa che cat vede in modo tale che si riferisca ancora a un file chiamato - . Il solito modo per farlo è anteporre al nome del file un percorso – ./- o /home/Tim/- . Questa tecnica viene utilizzata anche per aggirare problemi simili in cui le opzioni della riga di comando si scontrano con i nomi dei file, quindi un file denominato ./-e non appare come -e opzione della riga di comando a un programma, ad esempio.


Linux
  1. Utilizzo della memoria di Linux

  2. Linux:reale utilizzo della memoria?

  3. Misurare l'utilizzo della RAM di un programma?

  4. Comando Linux df

  5. sar:comando non trovato

cPanel – Utilizzo del disco

Domande frequenti sui feed cloud

Come profilare l'utilizzo della memoria?

Bash monitora l'utilizzo del disco

È possibile utilizzare / in un nome file?

Utilizzo della memoria dei comandi TOP