在linux下读文件a再重新重定向到该文件,会将文件清空是为什么? 5
试着玩儿,发现了这个问题:[root@localhosttemp]#lltest-rw-r--r--1rootroot170504-1622:58test[root@lo...
试着玩儿,发现了这个问题:
[root@localhost temp]# ll test
-rw-r--r-- 1 root root 1705 04-16 22:58 test
[root@localhost temp]# head -n 3 test
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@localhost temp]# grep "\n" test >test
[root@localhost temp]# head -n 3 test
[root@localhost temp]# ll test
-rw-r--r-- 1 root root 0 04-16 22:59 test
请问为什么是这样的?原理是什么? 展开
[root@localhost temp]# ll test
-rw-r--r-- 1 root root 1705 04-16 22:58 test
[root@localhost temp]# head -n 3 test
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@localhost temp]# grep "\n" test >test
[root@localhost temp]# head -n 3 test
[root@localhost temp]# ll test
-rw-r--r-- 1 root root 0 04-16 22:59 test
请问为什么是这样的?原理是什么? 展开
3个回答
展开全部
应该是这样的,主要是grep调用test文件并查找对应字符
grep "\n" test 查找为空 ,但并不改变原文件的内容
>表示覆盖原文件并添加,文件不存在则创建
linux下默认的换行符手动回车换行,但不存在文件中
你可以
echo '\n' >> test
grep "\n" test >test 后test文件变成只有\n
grep "\n" test 查找为空 ,但并不改变原文件的内容
>表示覆盖原文件并添加,文件不存在则创建
linux下默认的换行符手动回车换行,但不存在文件中
你可以
echo '\n' >> test
grep "\n" test >test 后test文件变成只有\n
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
grep "\n" test 没有过滤到任何东西输出为空
将空的重定向到test
test当然清空了
将空的重定向到test
test当然清空了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询