我的 CentOS 中的每个文件或链接/usr/bin
末尾都有一个星号。在我的本地 osX 服务器上,它们都没有。这是什么意思?我在 google 和这里搜索过,但都没有找到。
-rwxr-xr-x 1 root root 107104 Nov 11 2010 zipcloak* -rwxr-xr-x 1 root root 2953 Oct 10 2008 zipgrep* -rwxr-xr-x 1 root root 159928 Nov 11 2010 zipinfo* -rwxr-xr-x 1 root root 98584 Nov 11 2010 zipnote* -rwxr-xr-x 1 root root 102680 Nov 11 2010 zipsplit* -rwxr-xr-x 1 root root 1731 May 27 2013 zless* -rwxr-xr-x 1 root root 2605 May 27 2013 zmore* -rwxr-xr-x 1 root root 5246 May 27 2013 znew*
答案1
这表明文件可执行文件摘自 ls 文档,第“常规输出格式”(info coreutils 'general output formatting'
):
‘-F’ ‘--classify’ ‘--indicator-style=classify’ Append a character to each file name indicating the file type. Also, for regular files that are executable, append ‘*’.
ls
您的系统可能有一个扩展为 的别名ls -F
。
这lsMac OS X 也有此选项,但你必须明确使用它,即运行ls -F
。
-F Display a slash (`/') immediately after each pathname that is a directory, an asterisk (`*') after each that is executable, an at sign (`@') after each symbolic link, an equals sign (`=') after each socket, a percent sign (`%') after each whiteout, and a vertical bar (`|') after each that is a FIFO.
答案2
GNU提供了在文件名后加上某些字符以表明文件类型的ls
选项:-F
-F, --classify
append indicator (one of */=>@|) to entries
其中*
表示可执行文件,/
表示目录,=
表示套接字等。您在 CentOS 机器上使用的列表命令可能别名为/bin/ls -lF
。如果您/bin/ls -l /usr/bin
在 CentOS 机器上输入 ,则*
将会消失。
尝试ls -lF
在 OSX 服务器上输入,看看是否可行。请注意,ls
OSX 附带的是不是GNU ls
;它是 OpenBSD ls
,可能不支持-F
(我不确定)。man ls
在 OSX 上输入以查看它支持哪些选项。(您也可以fileutils
使用 在 OSX 上安装 GNU macports
。)