我在目录中做了一个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,但是它一直在抱怨文件确实不存在,但它在这里吗?

评论

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

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

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

#1 楼

Ignacio Vazquez-Abrams已经对*进行了解释:


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


对于看起来像可执行文件的emulator,您实际上无法执行,这当emulator请求的动态加载程序不存在时,可能会发生。您可以使用命令emulator来检查file emulator属于哪种文件,并可以通过ldd emulator来检查所需的动态装载程序和库(任何需要显示“未找到”的行都需要安装)。

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

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

评论


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

–user155695
2010年8月21日在21:19

-bash:./badshebang:/ bin / xyzzy:错误的解释器:无此类文件或目录

–丹尼斯·威廉姆森
2010年8月21日在21:58

#2 楼

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

#3 楼

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


评论


+1用于教学钓鱼和送鱼。

–atoMerz
17年11月8日在7:57

#4 楼

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

alias ll='ls -alF'


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

IPython会自动在引擎盖下使用F标志(默认情况下),因此只需输入ls就会产生您所看到的效果。

编辑:顺便说一句,指出您正在运行ls -l,运行ll可能根本不一样。

评论


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

–亚当
2015年5月7日,0:35

#5 楼

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