V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  sandylaw  ›  全部回复第 1 页 / 共 10 页
回复总数  193
1  2  3  4  5  6  7  8  9  10  
3 天前
回复了 jinqzzz 创建的主题 Linux 想请教一个关于 Bash 管道符和 tee 的问题
为什么会有不确定的行为:
当你使用 tee 写回到相同的文件时,tee 和 sort 的处理对文件的打开、读取、写入的时序会影响最终结果。这个命令有一个竞态条件的问题:

文件读写的时间差:sort 命令开始读取文件 foo 的内容,并进行排序。如果在 sort 读取完成之前 tee 就开始写入数据到 foo ,tee 的写入操作可能会覆盖 sort 还未读取的数据,导致数据丢失。

缓存和写入的延迟:UNIX 系统通常会使用缓存来优化读写操作。sort 可能还在处理数据,而 tee 可能已经开始写入,这种不同的处理速度可能导致 foo 文件的内容在未完全排序前就被覆盖。

**延迟写入**
如果你希望避免使用临时文件但仍需要确保数据的完整性,你可以考虑使用命令缓冲的方法,例如使用 Bash 的进程替换功能。这种方法可以让你在不创建物理临时文件的情况下处理数据。

下面是一个使用 Bash 进程替换来安全更新文件内容的例子:

```bash
sort -u foo | sponge foo
```
这里使用了 sponge 命令,它属于 moreutils 包的一部分。sponge 会读取所有的标准输入直到 EOF ,然后将数据写入到文件。这样可以避免在读取数据时同时写入同一个文件所引起的问题。

如果你的系统上还没有 sponge ,你可以通过包管理器安装 moreutils:
```bash
sudo apt-get install moreutils
```
延迟写入:由于 sponge 延迟写入,它避免了 tee 可能遇到的读写冲突问题,但代价是必须有足够的内存来存储所有输入,直到处理完成。
14 天前
回复了 fengsi 创建的主题 问与答 个人项目有什么合适的项目管理软件吗
kanboard
30 天前
回复了 qdwang 创建的主题 问与答 求一种比较好用的存档打包格式
就没有 zip 优化的工具吗?
如果有非智能的 TV+电视棒就好了
我开过 没什么用
就没在上面找到过工作
最后都是通过熟人介绍 内推
122 天前
回复了 luckyjoe 创建的主题 问与答 电视盒求推荐
@rapporbit #34 我用的 顺丰国际
@JensenQian #10 pixel 没这个设置
@3M #7 Google Pixel NFC 设置里 没有这一项 可以修改。
@popzuk #4 还是需要打开 app ,不是盲刷。
@MelodyCat #1 二维码还是使用 NFC ?需要使用时点亮吗?
@0n1 #25 哪里入的?多钱?
153 天前
回复了 sandylaw 创建的主题 Apple iPhone 15 Pro Max 日版 加版 怎么购买?
@wuqistarkakaxi #15 怎么私?
153 天前
回复了 luckyjoe 创建的主题 问与答 电视盒求推荐
@greenskinmonster #2 我也淘了一个,不过成本比较高一点:39.99 美元+83 运费+57 关税。
153 天前
回复了 sandylaw 创建的主题 Apple iPhone 15 Pro Max 日版 加版 怎么购买?
@cynics #7 出国一趟成本太高了
@VxJiahua #16 解不了 root ,哈哈
@VxJiahua #7 没办法禁用吗?
@laodouchi #4 k70 不是 miui 了,无法 root 的情况下,能干掉监控吗?
1  2  3  4  5  6  7  8  9  10  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1033 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 30ms · UTC 20:14 · PVG 04:14 · LAX 13:14 · JFK 16:14
Developed with CodeLauncher
♥ Do have faith in what you're doing.