我使用Linux有一段时间了,今天我发现了一件有趣的事情。
说我有一个无限的任务,不断将字符串写入文件。
在某个时刻,我删除了该文件,并在几秒钟内重新创建了该文件。令我惊讶的是,我不会丢失任何绳子。
以下是我使用 bash 脚本进行测试的方法:
#!/bin/bash
i=0
while :
do
echo ${i}>>./target
sleep 1
i=$((i+1))
done
我执行这个脚本 4 秒钟,我可以得到一个文件名target
,其中包含0
、1
、2
和3
。然后我删除该文件target
。我touch target
在 5 秒内执行创建一个新文件。令我惊讶的是,在新文件中,我立即得到了内容4
, 5
, 6
, 7
, 。8
那么为什么我可以取回删除文件时生成的所有字符串呢?
答案1
因为touch target
在这种情况下没有创建文件。 shell>>
操作符附加到指定的文件,并在必要时创建。您删除“3”之后的文件,然后echo 4>>./target
创建它。
删除文件后尝试列出该文件:
rm target; sleep 1; ls -l target
你会看到它被重新创建了。