Dấu hoa thị có nghĩa gì sau tên tệp khi bạn nhập `ls -l`?


161

Tôi đã thực hiện ls -lmột thư mục bên trong và các tệp của tôi đang hiển thị như thế này:

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*

Dấu hoa thị đó có nghĩa là gì?

Tôi cũng không thể chạy một tệp cụ thể, như sau:

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

EDIT : Tôi đang cố gắng để Eclipse sử dụng emulator, nhưng nó cứ phàn nàn rằng các tệp không tồn tại, nhưng nó có ở đây không?


3
Tất cả các tệp được đánh dấu là thực thi trên phân vùng NTFS.
Smile4ever

@ Smile4ever đơn giản là không đúng. Nó phụ thuộc vào cách bạn đã gắn phân vùng và theo mặc định, nó được gắn dưới dạng toàn bộ thực thi. Điều tương tự cũng áp dụng cho FAT và các phân vùng không phải Unix khác. Tuy nhiên, bạn cũng có thể lưu trữ các quyền Unix trên NTFS vì đó là tương thích POSIX của Askubfox.com/q/86959/253474 unix.stackexchange.com/q/11757/44425
phuclv

@ LưuViênPhúc Bạn có thể gắn kết phân vùng của mình khác nhau, vâng. Nhưng theo mặc định, nó được gắn dưới dạng thực thi trên hầu hết các bản phân phối Linux. Cảm ơn bạn đã làm rõ.
Smile4ever

Câu trả lời:


77

Ignacio Vazquez-Abrams đã giải thích về* :

Nó có nghĩa là các tập tin là thực thi. Một trình phân loại được hiển thị khi -F được truyền đến ls thông qua dòng lệnh hoặc cách khác.

Đối với giao diện thực thi emulatormà bạn không thể thực thi, điều này có thể xảy ra khi trình tải động được yêu cầu emulatorkhông tồn tại. Bạn có thể kiểm tra loại tệp nào emulatorvới lệnh file emulatorvà kiểm tra xem trình tải và thư viện động nào cần có ldd emulator(bất kỳ dòng nào hiển thị không tìm thấy Wap là thứ bạn cần cài đặt).

Đặt tên của thư mục và kích thước của tệp, emulatorcó thể là tệp nhị phân Linux x86. Tôi nghi ngờ bạn có một hệ thống amd64. Nếu vậy, bạn cần cài đặt môi trường thời gian chạy cho các ứng dụng 32 bit; trên Ubuntu, bạn cần ia32-libsgói (và có lẽ cũng vậy ia32-libs-gtk).

Bạn cũng có thể nhận được thông báo lỗi này cho một tập lệnh có trình thông dịch như được chỉ ra trong #!dòng không tồn tại.


1
Thật thú vị, tôi sẽ đưa ra những gì bạn đề nghị. Điều duy nhất làm tôi bối rối là tôi đã chạy cái này ngày hôm qua và kể từ đó chỉ mới khởi động lại ...: S
user155695

-bash: ./badshebang: /bin/xyzzy: bad interpreter: No such file or directory
Dennis Williamson

80

Nó có nghĩa là các tập tin là thực thi. Một bộ phân loại được hiển thị khi -Fđược truyền lsqua dòng lệnh hoặc cách khác.


33

Từ 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 để dạy câu cá cũng như cho cá.
atoMerz

21

Ubuntu (12.04 và có lẽ các phiên bản khác cũng vậy) bao gồm các cài đặt sau theo mặc định:

alias ll='ls -alF'

Và như những người khác đã giải thích, -Fchịu trách nhiệm về dấu hoa thị.

IPython tự động sử dụng Fcờ dưới mui xe (theo mặc định), vì vậy chỉ cần nhập lssẽ tạo ra hiệu ứng bạn nhìn thấy ở đó.

Chỉnh sửa: nhân tiện, bạn nói rằng bạn đang chạy ls -l, chạy llcó thể không giống nhau chút nào.


7
Một mẹo thú vị mà bạn có thể làm trong Bash là gõ lệnh bí danh (ví dụ: "ll") và nhấn [Ctrl] + [Alt] + [e]. Nó sẽ mở rộng bí danh để bạn có thể thấy những gì nó thực sự xử lý. (bạn có thể phải nhấn một vài lần để mở rộng hoàn toàn)
Adam

9

Như một số người khác đã đề cập, -Ftùy chọn lssẽ gắn cờ thực thi bằng dấu hoa thị. Bạn không có -Ftrong dòng lệnh của mình, nhưng có khả năng nó lsđã được đặt bí danh. Bạn có thể kiểm tra các bí danh trong vỏ lựa chọn của mình (trong bash, sử dụng lệnh tích hợp aliasđể liệt kê các bí danh) hoặc thoát lslệnh bằng dấu gạch chéo ngược để vô hiệu hóa bí danh.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.