Qual è la differenza tra ls >e ls >>? Devo capirlo per il mio calcolo GCSE ma non so quale sia la differenza.
man bash).
Qual è la differenza tra ls >e ls >>? Devo capirlo per il mio calcolo GCSE ma non so quale sia la differenza.
man bash).
Risposte:
>e >>sono operatori di reindirizzamento; trasferiscono l'output di qualcosa, in questo caso ls, altrove. Se questo output passa a un file, >troncherà il file, ovvero eliminerà qualsiasi contenuto precedente, mentre >>aggiungerà nuovi dati alla fine del file, mantenendo il contenuto precedente. Funzionerà con qualsiasi input, quindi echoe cat, ad esempio, può anche essere usato in questo modo.
Interessante anche l' |operatore, che passa i dati a un'altra applicazione, quindi ls | cat -nti darà un elenco con numero di riga!
Tubi è il termine pertinente.
straceoutput per bash -c 'echo a > blah': open("blah, O_WRONLY|O_CREAT|O_TRUNC, 0666), in modo da troncare sarebbe il termine giusto.
>>per scrivere in un file (es: un log) ha anche il lato bello effetto per non visualizzare i caratteri "Nul" all'inizio del file saif se il file viene troncato mentre il processo continua a scriverlo! (es: durante la rotazione del file di registro). Poiché "foo> file" non cerca, non nota la modifica delle dimensioni e punta ancora oltre l'inizio, e il sistema operativo si riempie di Nul. foo >>filecerca e quindi indica la nuova posizione (l'inizio).
I simboli >e >>vengono utilizzati per reindirizzare l'output su un file.
Entrambi creeranno il file se il file non esiste. Se il file esiste già, quindi >sovrascriverà il file dove >>verranno aggiunti i dati al file.
Quindi ls > myfilecreerà un documento chiamato myfilese non esiste. Se myfileè già presente e contiene alcuni dati, verranno sovrascritti con i nuovi dati che vengono passati.
Considerando ls >> myfileche creerà un file se non esiste e scriverà i dati su di esso. Se il file esiste con alcuni dati, i nuovi dati vengono aggiunti alla fine.
Se usi un singolo>, sovrascriverà il file se esiste già. Fai molta attenzione quando usi questo.
Se usi due >>, aggiungerà semplicemente (in altre parole, inizia a scrivere in fondo al file) se esiste già. Altrimenti, crea un nuovo file se non esiste.