Reindirizzamento dell'output e spazi


9

Ne sono paranoico, ma spero che sia una domanda semplice:

C'è qualche differenza tra

cat file1 | egrep -oP "[Mm]y string" > /home/user/file.txt

e

cat file1|egrep -oP "[Mm]y string">/home/user/file.txt

cioè, importa se ho spazi che riempiono i caratteri pipe (|) e reindirizzamento (>)? Sono davvero paranoico che avere spazi lì gli spazi finiranno in qualche modo nel file di output quando non lo voglio. Qualcuno può chiarire? (Usando Ubuntu 12 / bash se è importante.)


Le uniche differenze sono a) estetica e b) convenienza quando si modificano le righe di comando in bash - ad es. Una "parola" è delimitata da spazi, quindi senza spazi intorno |o >quindi digitando Ctrl-Wper eliminare la "parola" precedente si eliminerebbe più di quanto si desideri. idem per i movimenti del cursore come i tasti Esc-fe così Esc-bvia
cas

Risposte:


8

Nella riga di comando della shell, gli spazi non quotati servono solo a delimitare le parole durante l'analisi dei comandi. Non vengono passati, né negli argomenti visualizzati dal comando né nel flusso di input standard.


Sei sicuro che non ci sia una vulnerabilità di sicurezza nell'uso di uno spazio dopo gli operatori? Non riesco a riprodurlo ora, ma esiste un exploit comune in cui un utente malintenzionato può modificare l'operazione prevista utilizzando un file come "nomefile" quando il file previsto era "nomefile".
Paralizzato della
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.