首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux shell:测试当前目录在重新创建时是否已被删除

Linux shell:测试当前目录在重新创建时是否已被删除
EN

Stack Overflow用户
提问于 2018-11-25 23:45:40
回答 1查看 88关注 0票数 3

我知道在这里这不是一个常见的问题,但可能有人已经发现了一个技巧来测试它。

我正在使用Linux Mint bash终端,并不时地因为外部操作而重新创建当前目录。在外部重新创建当前目录后,所有像echo blabla > blabla这样的命令都会失败,因为终端保持当前目录句柄打开,并且用户无法在已打开的句柄所持有的已删除目录中创建文件。

我知道cd .可以将当前目录的句柄恢复到已创建的目录。

有没有办法在调用cd .之前测试终端持有的处于已删除状态的当前目录句柄

EN

回答 1

Stack Overflow用户

发布于 2018-11-25 23:58:15

由于竞争条件,测试此条件不是一个好主意。

尽管如此,因为它很难捕获,所以我给你以下内容:

代码语言:javascript
复制
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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53469146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档