我知道在这里这不是一个常见的问题,但可能有人已经发现了一个技巧来测试它。
我正在使用Linux Mint bash终端,并不时地因为外部操作而重新创建当前目录。在外部重新创建当前目录后,所有像echo blabla > blabla这样的命令都会失败,因为终端保持当前目录句柄打开,并且用户无法在已打开的句柄所持有的已删除目录中创建文件。
我知道cd .可以将当前目录的句柄恢复到已创建的目录。
有没有办法在调用cd .之前测试终端持有的处于已删除状态的当前目录句柄
发布于 2018-11-25 23:58:15
由于竞争条件,测试此条件不是一个好主意。
尽管如此,因为它很难捕获,所以我给你以下内容:
checkcd()
{
CINODE=$(ls -id . | cut -d ' ' -f 1)
PINODE=$(ls -id `pwd` | cut -d ' ' -f 1)
if [ $? -gt 0 ]
then
echo "Current directory is gone"
elif [ $CINODE -ne $PINODE ]
then
echo "Current directory has been deleted and recreated; do cd `pwd` to fix"
else
echo "Current directory is ok"
end if
}现在,它是一个可以放入.bashrc并作为checkcd调用的函数。
如果你需要知道如何使用.bashrc,这是你的答案:https://unix.stackexchange.com/questions/129143/what-is-the-purpose-of-bashrc-and-how-does-it-work
https://stackoverflow.com/questions/53469146
复制相似问题