Чтобы было ясно, не «каждый файл является исполняемым». Файлы имеют связанные с ними метаданные, и одна часть этих метаданных включает в себя то, является ли он исполняемым. Один из способов проверить эти метаданные — использовать команду ls
:
$ ls -l
total 12
-rwxr-xr-x 1 ownerName groupName 4 Mar 20 18:01 executableFile
^ ^ ^
Я не хочу слишком углубляться в разрешения, но те x указывает на то, что файл является исполняемым, справа -до -слева, пользователем ownerName
, любым членом группы groupName
, или кем-либо еще. Часто ownerName
и groupName
будут root
, так что третий x
будет тем, кем вы, вероятно, будете больше всего интересует в краткосрочной перспективе.
Какой исполняемый файл запускается при вводе команды? Как и в Windows, существует переменная среды с именем PATH, которая содержит набор каталогов, в которых оболочка (интерпретатор команд )будет искать исполняемые файлы с указанным вами именем. Windows использует ;
в качестве разделителя каталогов, Linux (и Unix обычно )использует :
. Вы можете использовать команду echo
для печати содержимого этой переменной :
$ echo $PATH
/bin:/usr/bin:/usr/local/bin...
Вы можете использовать команду which
для определения полного пути к команде:
$ which ls
/usr/bin/ls
Как упоминал @Stan Strum в комментарии выше, вы также можете использовать команду type
:
$ type ls
ls is hashed (/usr/bin/ls)
Это можно сделать с помощью цикла for
, например
for i in $(seq 1 10)
do
./script./directory file$i &
done
Bash3+ с раскрытием фигурных скобок.
for i in {1..10}; do
/script./directory "file$i" &
done
С POSIXsh
i=1
while [ "$i" -le 10 ]; do
/script./directory "file$i" &
i=$((i + 1))
done