Fro первый вопрос, в основном, Вы даете слишком много параметры test
там (мне кажется, что первая строка того, что Вы вставили, является на самом деле 4-й строкой Вашего сценария). Если Ваш случай нескольких файлов, Вы будете иметь test -f file1 file2 file3…
в то время как test
ожидал бы бинарного оператора (например, "-a" для И) после -f file1
и следующее выражение после этого и так далее.
Что касается предоставления и обработки параметров для Вашего сценария для автоматического удаления файлов, не прося подтверждение можно использовать то же test
на 1$ (это будет первым параметром командной строки Вашего сценария).
тип
Вы используете [113033]тип[113034] для определения местоположения исполняемого файла на диске следующим образом:
ПРИМЕЧАНИЕ:[113042] Вы можете подтвердить их идентичность, используя [113043]cmp[113044] или [113045]diff[113046].с diff
с cmp
Используя file
Если я запрошу их с помощью команды [113047]file[113048]:
Таким образом, это будут настоящие физические программы, скомпилированные на языке Си/Си++. Если бы это были скрипты оболочки, они бы обычно представляли собой [113049]file[113050]:
What's ELF?
ELF - это формат файла[113052], это выходной файл компилятора типа [113053]gcc[113054], который используется для компиляции Си/Си++ программ типа [113055]ls[113056].
В вычислениях исполняемый и связующий формат (ELF, ранее называвшийся расширяемым связующим форматом) является общим стандартным форматом файлов для исполняемых файлов, объектного кода, общих библиотек и дампов ядра.
В имени файла обычно используется одно из следующих расширений: none, .o, .so, .elf, .prx, .puff, .bin[112564].
Вам нужен исходный код (c, иногда c++, наиболее распространенные языки на *nix), а не просто скомпилированный исполняемый файл. Так как это открытый исходный код, вы можете получить код для всего из онлайн репозиториев (основные утилиты обычно из проекта gnu). Однако, это немного сложно, если вы не знаете, как использовать git или другие системы отслеживания версий.
Вот файл ls.c, если это поможет: [113027]http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/ls.c