realpath: --relative-base e --relative-to

0

De coreutils sobre realpath

--relative-to=file Print the resolved file names relative to the specified file. Note this option honors the -m and -e options pertaining to file existence.

--relative-base=base This option is valid when used with --relative-to, and will restrict the output of --relative-to so that relative names are output, only when files are descendants of base. Otherwise output the absolute file name. If --relative-to was not specified, then the descendants of base are printed relative to base. If --relative-to is specified, then that directory must be a descendant of base for this option to have an effect. Note: this option honors the -m and -e options pertaining to file existence. For example:

realpath --relative-to=/usr /tmp /usr/bin
⇒ ../tmp
⇒ bin
realpath --relative-base=/usr /tmp /usr/bin
⇒ /tmp
⇒ bin
  1. Será que "Esta opção é válida quando usada com --relative-to " significa que --relative-base não pode funcionar sem --relative-to especificado?

    Então, por que também diz depois que "Se --relative-to não foi especificado, os descendentes da base são impressos em relação a base ", o que implica que --relative-base pode funcionar sem --relative-to especificado?

  2. "Se --relative-to não foi especificado, então os descendentes da base são impressos em relação à base. Se --relative-to for especificado, então esse diretório deve ser um descendente de base para esta opção ter um efeito. "

    Quais são as diferenças entre os dois casos com e sem --relative-to especificado?

    Na citação, os dois casos são os mesmos, no sentido de que apenas os descendentes da base são impressos em relação à base, enquanto outros são impressos como nomes de caminho absolutos?

Obrigado.

    
por Tim 05.07.2016 / 00:57

1 resposta

1

Os desenvolvedores acharam isso obscuro e mudaram há mais de quatro anos:

There is no need to recompute for every path being visited whether the base is a prefix of the relative location.

Most of the time, if someone wants to filter which paths are relative while leaving all others absolute, they also want to to the filtering based on the same --relative-to directory. Make this easier to specify.

Mas a documentação para --relative-base e --relative-to parece ter não foi reformulado para esclarecer que, se --relative-to não foi especificado, o valor padrão será dado para --relative-base .

    
por 06.09.2016 / 02:42

Tags