Справочник по консольным командам Toybox для Android 12


  Ver.0.8.4     Ver.0.8.9     Pending  

Путь: Toys/POSIX, команды версии: Ver.4     Ver.9


basename

Комментарии в файле basename.c :

usage: basename [-a] [-s SUFFIX] NAME... | NAME [SUFFIX]

Возвращает часть пути, не относящуюся к каталогу, удаляя суффикс.
  • -a Все аргументы являются именами
  • -s СУФФИКС Удалить суффикс (подразумевается -a)

  • usage: basename [-a] [-s SUFFIX] NAME... | NAME [SUFFIX]

    Return non-directory portion of a pathname removing suffix.
  • -a All arguments are names
  • -s SUFFIX Remove suffix (implies -a)

  • Исходный текст в файле basename.c

    #define FOR_basename
    #include "toys.h"
    
    GLOBALS(
      char *s;
    )
    
    void basename_main(void)
    {
      char **arg;
    
      if (toys.optflags&FLAG_s) toys.optflags |= FLAG_a;
    
      if (!(toys.optflags&FLAG_a)) {
        if (toys.optc > 2) error_exit("too many args");
        TT.s = toys.optargs[1];
        toys.optargs[1] = NULL;
      }
    
      for (arg = toys.optargs; *arg; ++arg) {
        char *base = basename(*arg), *p;
    
        // Chop off the suffix if provided.
        if (TT.s && *TT.s && (p = strend(base, TT.s))) *p = 0;
        puts(base);
      }
    }