linux中怎么实现重定向?
答案:5 悬赏:50
解决时间 2021-03-12 20:02
- 提问者网友:离殇似水流年飞逝
- 2021-03-12 02:40
举个题 要怎么实现。将教材中提到的命令执行一遍,命令参数自己选择,将执行结果输出到 command.log中。怎么输入到command.log中
最佳答案
- 二级知识专家网友:承载所有颓废
- 2021-03-12 04:15
cat file > command.log " command.log文件不存在则创建该文件,否则覆盖已有文件
cat file >> command.log " 将输出结果追加到 command.log 文件的尾部
cat file >> command.log " 将输出结果追加到 command.log 文件的尾部
全部回答
- 1楼网友:晚安听书人
- 2021-03-12 09:36
在您实现输出的那行命令后面加上>、>>、<、<<、2>、2>>来实现重定向。
>是每一次重定向时将原先的内容先删除然后写入新的数据。
>>是每一次重定向时将新的内容加入到就内容的后面。
<是将指定文件内容重定向到相关命令或者文件中,同时每次执行时先删除旧的再加入新的。
<<作用同上,只是将新的信息加到旧的信息后面。
2>是将命令执行报错时,将错误信息重定向至指定文件,并且每次执行都会先删除旧的再加入新的。
2>>和上面一条命里作用一样,只是将新的错误信息加到原来信息的后面
举例:
1.ls /etc/passwd > user
2.ls /etc/passwd >> user
3.ls idjsoigjs > test
4.ls idjsoigjs >> test
5. mail 用户名 -s "邮件题目" < file (file是你建的一个文件,里面内容随意自己定)
然后输入 mail 可以看到自己有封邮件题目为(您自定义的名字),输入相应的数字,您可以按到信件内容为file内容,这就是利用重定向直接将已写好的信件内容发送出去。
至于1-4的结果,楼主可在输入完后自行查看user和test的变化来进行对比。
- 2楼网友:废途浑身病态
- 2021-03-12 08:03
ls / > command.log就是列出根下面的东西,并把结果输出到文件command.log中,但这种方式会覆盖掉文件里原来的东西。
如果不想覆盖原来文件里的东西就用 ls / >> command.log这样输出的内容就会出现在文件的后面。
- 3楼网友:猎杀温柔
- 2021-03-12 06:39
不管是>>还是2>>都属于追加重定向。也就说,新重定向的内容不会覆盖掉原有文件里的内容,而是另起一行。只不过>>,是只对正确的内容或者结果进行重定向;而2>>,只对错误的内容或结果进行重定向。
比如原有文件a.txt,里面有一内容this is a test。现在我执行了命令:ls -l >> a.txt, 那么这个时候,因为的ls -l这个命令是正确的,所以ls -l 这个命令的结果将会被追加到a.txt中,以行为单位,写在了this is a test这段内容下面。
相反如果我执行了命令aaaa 2>> a.txt,那么因为这个命令是错的,所以会把我执行的aaaa命令之后所提示的错误提示(比如: command not found)追加到a.txt,同样是在this is a test这段话的下面。
而> 和2>却是不追加,而是覆盖掉原有内容,其他意思一样。
- 4楼网友:短发女王川岛琦
- 2021-03-12 04:59
>这个符号
例如 ls -l > /tmp/command.log
>> 是追加的意思
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯