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


161

我已经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,但它一直在抱怨文件不存在,但它在这里?


3
在NTFS分区上,所有文件都标记为可执行文件。
Smile4ever 2015年

@ Smile4ever根本不是真的。这取决于您挂载分区的方式,并且默认情况下将其挂载为全可执行文件。FAT和其他非Unix分区也是如此。但是,您也可以在NTFS上存储Unix权限,因为它是POSIX兼容的askubuntu.com/q/86959/253474 unix.stackexchange.com/q/11757/44425
phuclv

@LưuVĩnhPhúc您可以不同地挂载分区,是的。但是默认情况下,它在大多数Linux发行版中都作为可执行文件挂载。感谢您的澄清。
Smile4ever

Answers:


77

Ignacio Vazquez-Abrams已经解释了以下内容*

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

至于emulator实际上无法执行的可执行文件外观,这可能在emulator不存在所请求的动态加载程序时发生。您可以emulator使用该命令file emulator检查文件的类型,并检查所需的动态加载程序和库ldd emulator(显示“未找到”的任何行都需要安装)。

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

对于#!行中指示的解释器不存在的脚本,您也可能会收到此错误消息。


1
有趣的是,我给你建议的机会。唯一令我困惑的是,我昨天运行了此程序,此后才重新启动...:S
user155695

-bash: ./badshebang: /bin/xyzzy: bad interpreter: No such file or directory
丹尼斯·威廉姆森


33

来自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.

3
+1用于教学捕鱼以及送鱼。
atoMerz

21

Ubuntu(12.04,可能还有其他版本)默认包含以下设置:

alias ll='ls -alF'

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

IPython会自动在幕后使用该F标志(默认情况下),因此仅输入即可ls产生您在此处看到的效果。

编辑:顺便说一句,你说你正在跑步ls -l,跑步ll可能根本不一样。


7
在Bash中可以做的一个有趣的技巧是键入别名命令(例如“ ll”),然后按[Ctrl] + [Alt] + [e]。它将扩展别名,以便您可以看到其实际处理的内容。(您可能必须按几次才能完全展开)
亚当

9

正如其他几个人提到的那样,该-F选项ls将以星号标记可执行文件。您-F的命令行中没有a ,但很可能ls已被别名。您可以在选择的shell中检查别名(在bash中,使用内置命令alias列出别名),或者在ls命令前加上反斜杠以禁用别名。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.