为什么 bash 和 tcsh 文件时间戳不同?

为什么 bash 和 tcsh 文件时间戳不同?

在我的 xubuntu 19.10-amd64 系统上,我让 cron 每天午夜运行备份作业。因此,rsync 命令创建的目标目录的时间戳应为 00:00。但是,我发现时间戳有些奇怪。tcsh
(我首选的交互式 shell)正确显示了连续几天的时间戳 00:00,但 bash 和 /bin/sh 都列出了所有目标目录,其时间戳的日期和时间都是错误的(见屏幕截图)。由于时间戳相同,因此 /bin/sh 脚本中的“ls -lt”顺序是任意的(即错误的),我的脚本无法找到“最旧”的备份。源和目标都在本地 ext4 文件主干上(本地 SSD 到本地 HDD);没有涉及 nfs,也没有远程系统。如果我手动“触摸”其中一个目标文件夹,bash 和 tcsh 都会报告新的时间戳。我找不到任何关于不同 shell 报告不同时间戳的先前讨论。关于我应该去哪里寻求帮助来解决这个问题,有什么建议吗?谢谢...

dean/ 101 >tcsh
dean/ 89 >ls -ltd /mnt/HDD4/Backups/CUDA1.home.0.*
drwxr-xr-x 4 root root 4096 Nov 18 00:00 /mnt/HDD4/Backups/CUDA1.home.0.2019-11-18/
drwxr-xr-x 4 root root 4096 Nov 17 00:00 /mnt/HDD4/Backups/CUDA1.home.0.2019-11-17/
drwxr-xr-x 4 root root 4096 Nov 16 00:00 /mnt/HDD4/Backups/CUDA1.home.0.2019-11-16/
dean/ 90 >bash
dean@CUDA1:~$ ls -ltd /mnt/HDD4/Backups/CUDA1.home.0.*
drwxr-xr-x 4 root root 4096 Nov 14 16:31 /mnt/HDD4/Backups/CUDA1.home.0.2019-11-16
drwxr-xr-x 4 root root 4096 Nov 14 16:31 /mnt/HDD4/Backups/CUDA1.home.0.2019-11-17
drwxr-xr-x 4 root root 4096 Nov 14 16:31 /mnt/HDD4/Backups/CUDA1.home.0.2019-11-18
dean@CUDA1:~$ sudo touch /mnt/HDD4/Backups/CUDA1.home.0.2019-11-18
[sudo] password for dean: 
dean@CUDA1:~$ !ls
ls -ltd /mnt/HDD4/Backups/CUDA1.home.0.*
drwxr-xr-x 4 root root 4096 Nov 18 12:52 /mnt/HDD4/Backups/CUDA1.home.0.2019-11-18
drwxr-xr-x 4 root root 4096 Nov 14 16:31 /mnt/HDD4/Backups/CUDA1.home.0.2019-11-16
drwxr-xr-x 4 root root 4096 Nov 14 16:31 /mnt/HDD4/Backups/CUDA1.home.0.2019-11-17
dean@CUDA1:~$ exit
exit
dean/ 91 >!ls
ls -ltd /mnt/HDD4/Backups/CUDA1.home.0.*
drwxr-xr-x 4 root root 4096 Nov 18 12:52 /mnt/HDD4/Backups/CUDA1.home.0.2019-11-18/
drwxr-xr-x 4 root root 4096 Nov 17 00:00 /mnt/HDD4/Backups/CUDA1.home.0.2019-11-17/
drwxr-xr-x 4 root root 4096 Nov 16 00:00 /mnt/HDD4/Backups/CUDA1.home.0.2019-11-16/

答案1

钢铁司机的评论,两个 shell 都继承了“ls”的不同别名。显式执行 /bin/ls 会得到一致的结果。解决了。谢谢。

相关内容