2010-08-21 20:21:57 +0000 2010-08-21 20:21:57 +0000
167
167

当你输入 "ls -l "时,文件名后面的星号是什么意思?

我在一个目录里面做了一个ls -l,我的文件是这样显示的:

james@nevada:~/development/tools/android-sdk-linux_86/tools$ ll
total 9512
drwxr-xr-x 3 james james 4096 2010-05-07 19:48 ./
drwxr-xr-x 6 james james 4096 2010-08-21 20:43 ../
-rwxr-xr-x 1 james james 341773 2010-05-07 19:47 adb*
-rwxr-xr-x 1 james james 3636 2010-05-07 19:47 android*
-rwxr-xr-x 1 james james 2382 2010-05-07 19:47 apkbuilder*
-rwxr-xr-x 1 james james 3265 2010-05-07 19:47 ddms*
-rwxr-xr-x 1 james james 89032 2010-05-07 19:47 dmtracedump*
-rwxr-xr-x 1 james james 1940 2010-05-07 19:47 draw9patch*
-rwxr-xr-x 1 james james 6886136 2010-05-07 19:47 emulator*
-rwxr-xr-x 1 james james 478199 2010-05-07 19:47 etc1tool*
-rwxr-xr-x 1 james james 1987 2010-05-07 19:47 hierarchyviewer*
-rwxr-xr-x 1 james james 23044 2010-05-07 19:47 hprof-conv*
-rwxr-xr-x 1 james james 1939 2010-05-07 19:47 layoutopt*
drwxr-xr-x 4 james james 4096 2010-05-07 19:48 lib/
-rwxr-xr-x 1 james james 16550 2010-05-07 19:47 mksdcard*
-rw-r--r-- 1 james james 205851 2010-05-07 19:48 NOTICE.txt
-rw-r--r-- 1 james james 33 2010-05-07 19:47 source.properties
-rwxr-xr-x 1 james james 1447936 2010-05-07 19:47 sqlite3*
-rwxr-xr-x 1 james james 3044 2010-05-07 19:47 traceview*
-rwxr-xr-x 1 james james 187965 2010-05-07 19:47 zipalign*

那个星号是什么意思?

我也无法运行某个文件,如下。

james@nevada:~/development/tools/android-sdk-linux_86/tools$ ./emulator 
bash: ./emulator: No such file or directory

编辑 。我试图让Eclipse使用emulator,但它一直抱怨文件不存在,但它却在这里?

答案 (5)

81
81
81
2010-08-21 21:14:02 +0000

伊格纳西奥-巴斯克斯-艾布拉姆斯已经解释了* ](https://superuser.com/questions/178786/what-does-the-asterisk-mean-after-a-filename-if-you-do-ls-l/178789#178789):

这意味着文件是可执行的。当通过命令行或其他方式将-F传递给ls时,会显示一个分类器。

至于看起来是可执行文件的emulator,但实际上却无法执行,这可能发生在emulator请求的动态加载器不存在时。你可以用命令emulator检查file emulator是什么类型的文件,用ldd emulator检查它需要什么动态加载器和库(凡是显示 “未找到 "的行都是你需要安装的东西)。

鉴于目录的名称和文件的大小,emulator可能是Linux x86的二进制文件。我怀疑你有一个amd64系统。如果是这样,你需要安装一个32位应用程序的运行时环境;在Ubuntu上,你需要ia32-libs包(也许还有ia32-libs-gtk)。

你也可能会收到这个错误信息,因为脚本的解释器在#!行中不存在。

80
80
80
2010-08-21 20:27:26 +0000

这意味着该文件是可执行的。当-F通过命令行或其他方式传递给ls时,会显示一个分类器

35
35
35
2010-08-21 22:24:06 +0000

info ls

`-F'
`--classify'
`--indicator-style=classify'
     Append a character to each file name indicating the file type.
     Also, for regular files that are executable, append `*'. The file
     type indicators are `/' for directories, `@' for symbolic links,
     `|' for FIFOs, `=' for sockets, `>' for doors, and nothing for
     regular files.
21
21
21
2012-11-05 16:30:44 +0000

Ubuntu(12.04,可能其他版本也是如此)默认包含以下设置:

alias ll='ls -alF'

正如其他人所解释的,-F负责星号。

IPython在引擎盖下自动使用F标志(默认情况下),所以只要输入ls就会产生你在那里看到的效果。

编辑:对了,你是说你在运行ls -l,运行ll可能完全不一样。

9
9
9
2010-08-22 01:54:36 +0000

正如其他几个人所提到的,-Fls选项会用星号标记可执行文件。你的命令行中没有-F,但很可能ls已经被别名了。你可以在你选择的shell中检查别名(在bash中,使用内置的命令alias来列出别名),或者用反斜杠转义ls命令来禁用别名。