ls에 알 수 없는 파일 형식이 있습니다.

ls에 알 수 없는 파일 형식이 있습니다.

일반적으로 파일 형식이 출력에 알 수 없음( )으로 표시되는 이유는 무엇입니까 ??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

파일 크기가 4GB이고 날짜가 1969년 12월 31일이라는 점을 고려하면 start-stop-daemon파일 시스템이 손상된 것 같습니다...

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                       \
  }

그리고 , 그리고 unknownfiletype enum알 수 없는 유형의 파일에 대한 기본값:

          /* Classify a file of some other type as C_ORPHAN.  */
          type = C_ORPHAN;

( ls구현에서는 여기에 자신의 문자를 자유롭게 추가할 수 있습니다.POSIX에 의해 정의됨.)

관련 정보