Ubuntu

ls 元數據輸出中的問號?

  • October 29, 2021

我正在監視一個包含從 Google Chrome 下載的目錄,ls -la並在輸出中得到了這個:

-?????????  ? ?     ?            ?            ? 'Unconfirmed 784300.crdownload'

我從未在輸出中看到過這樣的問號。

目錄中還有其他具有正常元數據輸出的文件。當我ls -la再次執行時,輸出一切正常;該文件仍然具有相同的名稱,但元數據現在可見。後來,當下載完成時,文件被重命名為其最終名稱,正如預期的那樣。

我檢查/var/log/syslogdmesg輸出,沒有看到任何核心消息。

我想知道我是否遇到了一些比賽條件?我想知道在第一次創建文件後是否有短暫的時間資訊尚不可用?

ext4 文件系統,帶有看似標準的掛載選項(rw,relatime,errors=remount-ro),Ubuntu 20.04.1 LTS 上的 5.4.0-59-generic 核心

這是一個(臨時?)文件,它在ls讀取其目錄條目和嘗試從其 inode 獲取元數據之間消失了。

ls您可以通過在它呼叫文件之前停止lstat,刪除該文件,然後讓它繼續來重現它:

$ mkdir dir; touch dir/file
$ gdb -q ls
Reading symbols from ls...(no debugging symbols found)...done.
(gdb) br __lxstat
Breakpoint 1 at 0x4200
(gdb) r -l dir
...
Breakpoint 1, __GI___lxstat (vers=1, name=0x7fffffffdfca "dir",
   buf=0x55555557c538) at ../sysdeps/unix/sysv/linux/wordsize-64/lxstat.c:34
(gdb) c
...
Breakpoint 1, __GI___lxstat (vers=1, name=0x7fffffffd3f0 "dir/file",
   buf=0x55555557c538) at ../sysdeps/unix/sysv/linux/wordsize-64/lxstat.c:34
...
(gdb) shell rm dir/file
(gdb) c
...
/usr/bin/ls: cannot access 'dir/file': No such file or directory
total 0
-????????? ? ? ? ?            ? file

想知道我是否遇到了一些比賽條件?

有點,但不是真的。這只是一個事實,即ls在文件系統執行其工作時不會鎖定文件系統;-)

無論如何,這不是文件系統損壞或類似情況的症狀。

引用自:https://unix.stackexchange.com/questions/629545