pwd en bash está mal después de enviar el directorio a la papelera

0

Si muevo un directorio a la papelera que ya tengo en ese directorio, pwd no informará ningún cambio en la ubicación. Todavía podré hacer todo en bash normalmente como si no hubiera cambios en el directorio, aunque Finder diga que no existe.

pwd siempre debe ser preciso. Esto no parece ser el caso.

Por ejemplo, estoy en este camino: /Users/me/Desktop/goingToTrash/subdir

Si me muevo a la papelera /Users/me/Desktop/goingToTrash , pwd informará que estoy en /Users/me/Desktop/goingToTrash/subdir , a pesar de que el buscador dice que no existe. Entonces, si vuelvo a crear el directorio eliminado, bash trabajará desde el directorio anterior (supongo que en la papelera, aún no he verificado) en lugar del nuevo que acabo de crear, y pwd no proporcionará ninguna pista de que esto haya sucedido.

Mucho peor, si "muevo a la papelera" un directorio y estoy en cd'd a uno de sus subdirectorios, luego recrear la estructura del directorio, desde un subdirectorio al que puedo cd ../subdir , mágicamente estoy de vuelta en el directorio "nuevo", a pesar de que el padre se "movió a la papelera" en lugar de permanecer en la estructura de directorio que se movió a la papelera.

    
pregunta Zamicol 28.09.2016 - 18:14

2 respuestas

3

YMMV cuando hay una inacción entre el shell y el Finder.app. Es mejor usar-

/bin/pwd

en lugar del pwd incorporado

Puedes agregar esta línea a tu ~ / .bashrc y restablecer a bash para "solucionar" este problema.

alias pwd="/bin/pwd"

Una alternativa a /bin/pwd (con o sin el alias) es pwd -P . La opción -P al pwd incorporado se explica en la salida de help pwd .

    
respondido por el fd0 28.09.2016 - 18:58
3

Este comportamiento no tiene nada que ver con el directorio .Trash. Puede entrar en una situación similar moviendo su directorio de trabajo actual a cualquier otra ubicación. Los comandos pwd y echo $PWD serán ambos inexactos.

Lo que he encontrado es que iniciar un nuevo proceso de bash identificará correctamente la nueva ubicación de su directorio de trabajo actual. Por lo tanto, una solución sería simplemente "actualizar" su proceso actual de bash con uno nuevo con el comando exec bash .

    
respondido por el Ben Ganis 28.09.2016 - 18:51

Lea otras preguntas en las etiquetas