V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  vuuv  ›  全部回复第 3 页 / 共 8 页
回复总数  152
1  2  3  4  5  6  7  8  
2019-06-12 14:54:36 +08:00
回复了 HeiXiaoBai 创建的主题 Linux cat file.txt > file.txt 导致 file.txt 被清空
@siteshen #35 文件真的没有被清空吗?看下文件的修改时间?
你写的的 hello.txt 是不是每行都恰好包含字母 a 呢?加一行不含字母 a 的内容试试?

例 1 里的圆括号“()”标记会 fork 一个 shell (暂称为子 shell )来执行。于是命令等价为这样的:
cat hello.txt | grep a | bash -c "sleep 1; cat > hello.txt"

如果没有 sleep 1,那么会立刻在子 shell 里发生文件清空。不过此时 cat 和子 shell 是同时 fork 的,而且子 shell 启动后的初始化及对命令的语法解析会花费一些时间(也就几十毫秒而已)。
如果 hello.txt 文件较小,等到子 shell 开始奉命清空文件时,cat 是有充足的时间读到文件全部内容的。如果文件超出了缓冲区大小(缓冲区默认是 4k,不过程序可以设置其他大小,内核也可能会多预读点内容。),就不保证 cat 能读到正确的内容了。

所以一些软件系统会设计为“对关键文件的修改加锁”,就是为了防止多个进程同时修改某个文件。
典型的代表就是 yum 的 install 子命令。
2019-06-10 22:19:57 +08:00
回复了 HeiXiaoBai 创建的主题 Linux cat file.txt > file.txt 导致 file.txt 被清空
@HeiXiaoBai #6 是的。你先要求 bash 清空了文件。然后 cat 就读到空文件了。
如果你希望匹配的内容出现在原文件结尾,那么使用>>。追加写入是不会改变已有内容的。
如果你希望只出现匹配的内容,建议换下后面的文件名。
2019-06-10 22:16:02 +08:00
回复了 304464743 创建的主题 Go 编程语言 关于 ssl 校验的疑难杂症
自签名提示都是 self signed。是能找到 CA 证书的(就是自己)。
你这个是 unknown authority,未知的 CA。如 #2 所述,你没有正确安装 ca-certificates。
2019-06-10 22:08:43 +08:00
回复了 HeiXiaoBai 创建的主题 Linux cat file.txt > file.txt 导致 file.txt 被清空
因为>是 bash 内部的 IO 重定向标记。当前登录的 bash 会先清空(如果是>>则不清空。)了 file.txt 然后才会 fork 出 cat grep sed 等三个进程。并根据管道符的指示把前一个命令的 stdout 重定向到后者的 stdin。最终把 sed 的 stdout 写入 file.txt 。
@tonywwwz #5 你投的是青云,做云计算的,在保利广场,可以考虑电话确认进度。
这家是青藤“云安全”,做安全的,在软件园。
@pubby #6 termux+hacker's keyboard
2019-02-24 08:18:59 +08:00
回复了 noli 创建的主题 奇思妙想 GPL 开源协议才是对自由软件世界的独立性之最大威胁
开源协议并非 GPL 一种。
而同一份代码可以拥有多种授权,如果计划商用,可以联系持有者获取其他版本的授权(例如 MIT,Apache )。
如果使用了 GPL 版本,却不想继续开源,那么抱歉了。持有者选择 GPL 就是为了治哪些只索取不奉献的。
2018-12-18 17:03:52 +08:00
回复了 90d0n 创建的主题 程序员 base64 怎么就不可逆了呢
@zqguo
如果加密算法不可逆,那么你加密了还能解密吗?如何保证原文和加解密过的内容是一致的?

现在存储密码的“密文”大部分情况都不是加密,而是对原文加 salt 后 hash。
早年的系统因为是加密 /明文存储密码,所以支持取回密码,现在的系统都不支持此功能,而是直接重置密码。
2018-12-18 09:12:42 +08:00
回复了 hellojinjie 创建的主题 Linux Linux 系统运行命令报错,貌似磁盘坏了,这种情况还有救嘛
前 20G 有三成内容被随机覆盖,大约 6G 的数据,应该会干掉大部分系统文件及大量的用户数据。
建议放弃抢救。
2018-12-17 12:50:49 +08:00
回复了 Gcourage 创建的主题 Linux Busybox 里面怎么监控一个进程的 CPU 跟 MEM 得好用的命令
top -b 可以启用批量模式。
好像也没其他命令可以保证效果了。
1  2  3  4  5  6  7  8  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   973 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 23ms · UTC 21:13 · PVG 05:13 · LAX 13:13 · JFK 16:13
Developed with CodeLauncher
♥ Do have faith in what you're doing.