![为什么带有波浪号的文件在 Windows 中可见,但在 Linux 上却不可见?](https://linux22.com/image/1557984/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%B8%A6%E6%9C%89%E6%B3%A2%E6%B5%AA%E5%8F%B7%E7%9A%84%E6%96%87%E4%BB%B6%E5%9C%A8%20Windows%20%E4%B8%AD%E5%8F%AF%E8%A7%81%EF%BC%8C%E4%BD%86%E5%9C%A8%20Linux%20%E4%B8%8A%E5%8D%B4%E4%B8%8D%E5%8F%AF%E8%A7%81%EF%BC%9F.png)
我无意中在 NAS(在 Linux 上运行)上的共享上创建了三个文件。这些文件是\home\abc
由 NAS 上运行的 bash 脚本在文件夹中创建的,但奇怪的是,abc
使用列出内容时它们没有显示出来ls -la \home\abc
。abc
也是可从我的 Windows PC 访问的共享,文件在 Windows 资源管理器中显示为BSPC07~P.LOG
和。BSPC07~T.LOG
BXDHDK~E.LOG
以前从未见过这样的事情。使用 bash 脚本在 Linux 机器上创建的文件在该机器上不可见,但在 Windows 机器上却可见,这怎么可能呢?
更多信息,以防万一它是相关的:这些文件是通过类似这样的方式产生的。
#!/bin/sh
DATE="$(date +%Y-%m-%d_%H:%M)"
FILE="/home/abc/backup_NAS-$DATE.log"
echo "$(date) Starting backup ..." >> $FILE
请注意 date 变量定义中的冒号。这并没有按预期工作。运行此脚本确实创建了一个包含日期和“开始备份”消息的文件,但文件名看起来backup_NAS-$DATE.log
与上面显示的完全一样。而且这些文件仅在 Windows 上可见。
我想删除这些文件,但我只有从 Windows 共享访问它们时的读取权限(即使在运行之后chmod +R 0777 /home/abc
),所以我无法从那里删除它们,也无法通过 NAS 上的 SSH 删除它们,因为它们在那里是不可见的...