
一般來說,文件類型在輸出中顯示為未知 ( ?
)的原因是什麼?ls
查看文件的第一位/sbin/start-stop-daemon
,它應該指示-
“常規文件”,而不是顯示為?
“未知”。
ts7500:~# ls -alh /sbin/s*
-rwxr-xr-x 1 root root 52K Apr 29 2008 /sbin/sfdisk
-rwxr-xr-x 1 root root 875 Dec 6 2009 /sbin/shadowconfig
-rwxr-xr-x 1 root root 12K Apr 19 2010 /sbin/showmount
-rwxr-xr-x 1 root root 18K Aug 12 2008 /sbin/shutdown
-rwxr-xr-x 1 root root 28K Nov 16 2008 /sbin/slattach
-rwxr-xr-x 1 root root 12K Apr 19 2010 /sbin/sm-notify
-rwxr-xr-x 1 root root 58K Jul 27 2008 /sbin/ss
?rwsrwsrwt 1 65535 root 4.0G Dec 31 1969 /sbin/start-stop-daemon
-rwxr-xr-x 1 root root 19K Aug 12 2008 /sbin/startpar
-rwxr-xr-x 1 root root 9.8K Aug 12 2008 /sbin/sulogin
lrwxrwxrwx 1 root root 6 Jun 9 2011 /sbin/swapoff -> swapon
-rwxr-xr-x 1 root root 17K Apr 29 2008 /sbin/swapon
-rwxr-xr-x 1 root root 11K Aug 6 2009 /sbin/sysctl
答案1
鑑於您的start-stop-daemon
檔案大小為 4GB,日期為 1969 年 12 月 31 日,我懷疑您的檔案系統可能已損壞...
sudo touch /forcefsck
然後重新啟動以檢查您的檔案系統。
這裡的輸出中的問號ls
來自filetype_letter
大批(在 GNU 中ls
):
/* Display letters and indicators for each filetype.
Keep these in sync with enum filetype. */
static char const filetype_letter[] = "?pcdb-lswd";
這對應於C_ORPHAN
:
#define FILETYPE_INDICATORS \
{ \
C_ORPHAN, C_FIFO, C_CHR, C_DIR, C_BLK, C_FILE, \
C_LINK, C_SOCK, C_FILE, C_DIR \
}
並且unknown
在filetype
enum
, 並且 是未知類型檔案的預設值:
/* Classify a file of some other type as C_ORPHAN. */
type = C_ORPHAN;
(ls
實現可以自由地將自己的字元添加到這些字元中由 POSIX 定義.)