Если я сделаю gcc filename.c
, я получу a.out
После выполнения gcc -o output_name filename.c
мы получим исполняемый файл output_name
.
Какое расширение у этого файла?
В отличие от окон, Linux не зависит от расширения файла для определения, какой файл это. Вместо этого это проверит первые несколько байтов файла и определит, какой файл это.
Следовательно выходной файл, данный gcc
, требует никакое расширение . Можно добавить любое расширение, которое Вы хотите (путем изменения -o output_name
для высказывания -o output_name.abcd
), но оно не идет в mke никакое различие.
можно взглянуть на вывод команды
file ./filename
, например
:~$ file output_file
output_file: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=9bc9fabf05a3d2e58c7780c48cd873cb2955b2ec, not stripped
:~$
Это не имеет того. Можно сделать gcc -o myprog.exe filename.c
, и это назовут myprog.exe
. В отличие от Windows нет никакого расширения по умолчанию для исполняемых файлов на Linux. Если Вы хотите отметить файл, как исполняемый файл делает chmod +x file
.
ls -l
шоу Вы, если x
(исполняемый) флаг установлен для Вашего файла:
user@host# ls -l filename
-rwxr-x--x 1 ubu users 42 Mai 10 08:16 filename
- means its a file (d would be directory,see below)
r means readable
w means writeable
x means executable
первое тройное для владельца (ubu
в этом случае), второе тройное для группы владения (пользователи), и последнее тройное для всех остальных.
каталоги For эти x
означают, "может ввести каталог", поэтому если x
не установлен, Вы не можете сделать cd directory
.
На Расширениях файла Linux не являются особенными, просто части имени файлов.