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


  Ver.0.8.4     Ver.0.8.9     Pending  

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


pwd

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

usage: pwd [-L|-P]

Распечатать рабочий (текущий) каталог.
  • -L Использовать путь оболочки из $PWD (если применимо)
  • -P Вывести канонический абсолютный путь

  • usage: pwd [-L|-P]

    Print working (current) directory.
  • -L Use shell's path from $PWD (when applicable)
  • -P Print canonical absolute path

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

    #define FOR_pwd
    #include "toys.h"
    
    void pwd_main(void)
    {
      char *s, *pwd = getcwd(0, 0), *PWD;
    
      // Only use $PWD if it's an absolute path alias for cwd with no "." or ".."
      if (!FLAG(P) && (s = PWD = getenv("PWD"))) {
        struct stat st1, st2;
    
        while (*s == '/') {
          if (*(++s) == '.') {
            if (s[1] == '/' || !s[1]) break;
            if (s[1] == '.' && (s[2] == '/' || !s[2])) break;
          }
          while (*s && *s != '/') s++;
        }
        if (!*s && s != PWD) s = PWD;
        else s = 0;
    
        // If current directory exists, make sure it matches.
        if (s && pwd)
          if (stat(pwd, &st1) || stat(PWD, &st2) || !same_file(&st1, &st2)) s = 0;
      } else s = 0;
    
      // If -L didn't give us a valid path, use cwd.
      if (s || (s = pwd)) puts(s);
      free(pwd);
      if (!s) perror_exit("xgetcwd");
    }