什么是"〜"字符在文件名末尾表示(linux)

时间:2014-02-07 04:07:16

标签: linux unix command-line terminal filenames

我在ls -l内重复执行/tmp/stream命令,并收到以下输出:

pi@dewsaq18 /tmp/stream $ ls -l
total 112
-rw-r--r-- 1 pi pi 112812 Feb  7 03:32 pic.jpg
pi@dewsaq18 /tmp/stream $ ls -l
total 112
-rw-r--r-- 1 pi pi 112812 Feb  7 03:32 pic.jpg
-rw-r--r-- 1 pi pi      0 Feb  7 03:32 pic.jpg~
pi@dewsaq18 /tmp/stream $ ls -l
total 116
-rw-r--r-- 1 pi pi 116748 Feb  7 03:32 pic.jpg
-rw-r--r-- 1 pi pi      0 Feb  7 03:32 pic.jpg~
pi@dewsaq18 /tmp/stream $ ls -l
total 116
-rw-r--r-- 1 pi pi 117608 Feb  7 03:32 pic.jpg
pi@dewsaq18 /tmp/stream $ ls -l
total 116
-rw-r--r-- 1 pi pi 117608 Feb  7 03:32 pic.jpg
-rw-r--r-- 1 pi pi      0 Feb  7 03:32 pic.jpg~
pi@dewsaq18 /tmp/stream $ ls -l
total 116
-rw-r--r-- 1 pi pi 118674 Feb  7 03:32 pic.jpg
-rw-r--r-- 1 pi pi      0 Feb  7 03:32 pic.jpg~
pi@dewsaq18 /tmp/stream $ ls -l
total 116
-rw-r--r-- 1 pi pi 118147 Feb  7 03:32 pic.jpg
pi@dewsaq18 /tmp/stream $ ls -l
total 116
-rw-r--r-- 1 pi pi 118147 Feb  7 03:32 pic.jpg
-rw-r--r-- 1 pi pi      0 Feb  7 03:32 pic.jpg~
pi@dewsaq18 /tmp/stream $ ls -l
total 116
-rw-r--r-- 1 pi pi 117175 Feb  7 03:32 pic.jpg
pi@dewsaq18 /tmp/stream $

......and so on

我的问题是 - "〜"到底发生了什么?附加到第二个(空)文件的字符?为什么每次执行ls -l时都不会显示此文件?

由于我使用的是静态文件名pic.jpg,并且每次拍摄新图片时都会覆盖图片,我最初的想法是pic.jpg~文件用于比较帧之间的变化。

然而,它并不总是存在(可能没有变化,所以不需要它?),更重要的是,它总是空的,根本没有任何数据写入。

感谢您提前给予帮助和指导。

1 个答案:

答案 0 :(得分:4)

文件名末尾的波浪号(~)通常用于表示备份文件。因此,如果您有一个文件foo.bar并对其进行编辑并保存,则新保存的文件将为foo.bar,之前的版本为foo.bar~。但它依赖于程序:并非所有编辑器或程序都会将文件的先前版本保存为备份,如果它们这样做,则它们并不都遵循附加波浪号(~)的惯例。它不是字面上的标准,而是一种非常常用的惯例。