Ubuntu
ls 元數據輸出中的問號?
我正在監視一個包含從 Google Chrome 下載的目錄,
ls -la
並在輸出中得到了這個:-????????? ? ? ? ? ? 'Unconfirmed 784300.crdownload'
我從未在輸出中看到過這樣的問號。
目錄中還有其他具有正常元數據輸出的文件。當我
ls -la
再次執行時,輸出一切正常;該文件仍然具有相同的名稱,但元數據現在可見。後來,當下載完成時,文件被重命名為其最終名稱,正如預期的那樣。我檢查
/var/log/syslog
並dmesg
輸出,沒有看到任何核心消息。我想知道我是否遇到了一些比賽條件?我想知道在第一次創建文件後是否有短暫的時間資訊尚不可用?
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
在文件系統執行其工作時不會鎖定文件系統;-)無論如何,這不是文件系統損壞或類似情況的症狀。