Description

What is the meaning of "*" at the end of a file (generally software package) being appended when "ls -lF" is executed under shell mode

Symptoms

  • Users may notice an asterisk (*) appended to the end of a file name when viewing files in a directory using the ls -lF command.

  • This asterisk typically indicates that the file is executable, which may lead to concerns about whether the file should be executable or if this could cause any issues.

  • Users might be uncertain about the implications of the asterisk and whether it affects the file's functionality or integrity, especially in the context of software packages.

Solution

Usually asterisk (*) at the end of any file means it is an executable file so shouldn't likely cause issue as long as the checksum matches to the original Software package file

 

 

For example, from shell,

 

% touch test1.txt

% ls -lF test1.txt

-rw-r--r-- 1 user staff 0 Jul 7 19:31 test1.txt >>>> this is not an executable file just has permission to read and write

 

% chmod 755 test1.txt

% ls -lF test1.txt  

-rwxr-xr-x 1 user staff 0 Jul 7 19:31 test1.txt* >>> asterisk is appended since permission has been changed thereby making it an executable file

 

you can also use ls -l alone to check and not use -F option

 

% ls -l test1.txt >>>the "-F" option will list the type of file it is

-rwxr-xr-x 1 user staff 0 Jul 7 19:31 test1.txt

 

According to man page:

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

 

 

Doing chmod 644 <file-name> from shell mode will remove the "x" from the file modifying the permission that will make the * disappear or in other word this file executable permission will be removed

Modification History

2024-08-08 : Article Created