es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Existe algún equivalente de `pwd -L` en Perl?

¿Existe un equivalente de “pwd -L” en Perl?

Quiero obtener el directorio de trabajo actual sin resolver los enlaces simbólicos.

Mi directorio de trabajo actual es “/path1/dir1/dir2/dir3”, y aquí dir1 es un enlace simbólico a test1/test2. Quiero obtener el directorio de trabajo actual como “/path1/dir1/dir2/dir3” mediante un script en Perl. Lo que obtengo es /path1/test1/test2/dir2/dir3.

¿Cómo puedo obtener el directorio de trabajo actual sin resolver los enlaces simbólicos? En otras palabras, me gustaría implementar “pwd -L” de la shell.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, hay un equivalente de “pwd -L” en la shell en Perl. El módulo Cwd proporciona una función getcwd() que devuelve el directorio de trabajo actual con enlaces simbólicos resueltos. Para obtener el directorio de trabajo actual sin enlaces simbólicos resueltos, podemos usar la función realpath() del módulo Cwd de la siguiente manera:

    use Cwd qw(realpath);
    my $cwd = realpath();
    

    Esto devolverá la ruta absoluta del directorio de trabajo actual con todos los enlaces simbólicos resueltos. Si desea obtener el directorio de trabajo actual como una ruta relativa, puede usar la función abs2rel() del módulo File::Spec de la siguiente manera:

    use Cwd qw(realpath);
    use File::Spec;
    
    my $cwd = realpath();
    my $relative_cwd = File::Spec->abs2rel($cwd);
    

    Esto devolverá el directorio de trabajo actual como una ruta relativa, sin resolver los enlaces simbólicos.

Comments are closed.