Quelle est la difference entre ls >
et ls >>
? J'ai besoin de comprendre cela pour mon calcul GCSE mais je ne sais pas quelle est la différence.
command-line
Helen Schofield
la source
la source
man bash
).Réponses:
>
&>>
sont des opérateurs de redirection; ils transfèrent la sortie de quelque chose, dans ce casls
, ailleurs. Si cette sortie va dans un fichier,>
tronquera le fichier - c'est-à-dire supprimera tout contenu précédent, tandis que>>
ajoutera de nouvelles données à la fin du fichier, en conservant le contenu précédent. Cela fonctionnera avec n'importe quelle entrée, doncecho
&cat
, par exemple, peut également être utilisé de cette façon.L'
|
opérateur est également intéressant , qui transmet les données à une autre application -ls | cat -n
vous donnera donc une liste numérotée!Pipes est le terme pertinent.
la source
strace
sortie pourbash -c 'echo a > blah'
:open("blah, O_WRONLY|O_CREAT|O_TRUNC, 0666)
, donc tronquer serait le terme exact.>>
pour écrire dans un fichier (ex: un journal) a aussi le côté agréable effet à pas avoir les caractères « NUL » apparaissent au début du fichier saif si le fichier est tronqué alors que le processus encore écrire à elle! (ex: pendant la rotation du fichier journal). Parce que "foo> file" ne cherche pas, il ne remarque pas le changement de taille et pointe toujours plus loin que le début, et le système d'exploitation remplit Nul.foo >>file
cherche et indique donc la nouvelle position (le début).Les symboles
>
et>>
sont utilisés pour rediriger la sortie vers un fichier.Les deux créeront le fichier s'il n'existe pas. Si le fichier existe déjà, alors
>
il écrasera le fichier où>>
et ajoutera les données au fichier.Ainsi
ls > myfile
va créer un document nommémyfile
s'il n'existe pas. S'ilmyfile
est déjà présent et contient des données, il sera alors remplacé par les nouvelles données que vous lui aurez transmises.Alors que
ls >> myfile
va créer un fichier s'il n'existe pas et y écrire des données. Si le fichier existe avec certaines données, de nouvelles données sont ajoutées à sa fin.la source
SI vous utilisez un seul>, il écrasera le fichier s'il existe déjà. Soyez très prudent lorsque vous utilisez celui-ci.
Si vous utilisez deux >>, il s'ajoutera simplement (en d'autres termes, commencez à écrire au bas du fichier) s'il existe déjà. Sinon, il crée un nouveau fichier s'il n'existe pas.
la source