V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
leo747604
V2EX  ›  Ubuntu

一个奇怪的 Linux 文件问题

  •  
  •   leo747604 · 2023-12-01 12:35:14 +08:00 · 958 次点击
    这是一个创建于 368 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Ubuntu 目录里突然出现目录 "." 和 "..":

    (base) leo@ICELAND:~/some_dir$ ls -l -a
    total 1164
    drwxrwxr-x 3 leo leo   4096 Dec  1 07:08 .
    drwxrwxr-x 4 leo leo   4096 Dec  1 11:52 ..
    drwxrwxr-x 8 leo leo   4096 Dec  1 12:19 .git
    

    上传到 Git Server 就无法 clone / pull, 也没法 revert 有问题的那次 commit:

    error: invalid path './.git/xxx'
    error: invalid path './monitor.py'
    fatal: revert failed
    

    这两个目录还没法删除:

    rm: refusing to remove '.' or '..' directory: skipping '.'
    

    尝试用 inode 删除, 但还是一样的结果:

    find . -inum 830800 -exec rm -rf -i {} \;
    

    我尝试进入这个目录:

    cd: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
    

    正常情况下 "." 应该是当前目录, ".." 应该是上级目录, 而且以前用

    ls -l -a
    

    也从来没出现过这两个隐藏目录 各位有碰到这样的情况吗

    puttsync0f
        1
    puttsync0f  
       2023-12-01 12:41:15 +08:00   ❤️ 1
    不会玩 Linux 建议不要玩!!!
    连 . 和 .. 都搞不懂用什么 Linux ?
    还想把它们删掉,你是要笑死我吗?
    zebedy
        2
    zebedy  
       2023-12-01 12:45:01 +08:00 via iPhone
    你可要笑死我了,.表示当前目录,..表示上层目录,不信你 cd ..看看能为你到哪儿
    今日看到的最好笑的事情
    leo747604
        3
    leo747604  
    OP
       2023-12-01 12:48:44 +08:00
    @zebedy @puttsync0f 可能是我没描述清楚,是除了正常应该有的 . 和 .. 之外还有 . 和 .. ,这两个是不应该存在的,删也删不掉
    leo747604
        4
    leo747604  
    OP
       2023-12-01 12:49:28 +08:00
    @zebedy
    @puttsync0f
    不是原有的 . 和 ..
    puttsync0f
        5
    puttsync0f  
       2023-12-01 12:53:39 +08:00
    @leo747604 Linux 一切皆文件,什么时候允许重名了?我都懒得回复你
    AoEiuV020JP
        6
    AoEiuV020JP  
       2023-12-01 13:02:36 +08:00
    不知道你在折腾什么,linux 对所有程序而言,点都是当前目录,点点都是上级目录,压根没有程序能创建这两个名字的文件和文件夹,也无法展示,,
    ls -l -a 本来就是会列出点和点点的,
    dnfQzjPBXtWmML
        7
    dnfQzjPBXtWmML  
       2023-12-01 13:12:04 +08:00
    加了-a 就会出现这两个
    leo747604
        8
    leo747604  
    OP
       2023-12-01 13:18:03 +08:00 via iPhone
    @AoEiuV020JP 我知道啊,理论上来说却是创建不了这种文件名的文件。我也没见过这种情况,不过我刚才好像看错了,多余的.是个文件
    drwxrwxr-x 3 leo leo 4096 Dec 1 07:08 .
    drwxrwxr-x 4 leo leo 4096 Dec 1 11:52 ..
    -rw-r--r-- 8 gga gga 3872 Dec 1 11:10 .
    drwxrwxr-x 4 leo leo 4096 Dec 1 11:52 .git
    leo747604
        9
    leo747604  
    OP
       2023-12-01 13:19:52 +08:00 via iPhone
    @leo747604
    @dnfQzjPBXtWmML
    刚才看了下另一个目录下,是这样显示
    oamzn
        10
    oamzn  
       2023-12-01 13:25:01 +08:00
    突然发现一个很奇怪的问题,赶紧上 V 站发个贴讨论下(这帖子质量肯定高)
    然后。。。就没有然后了;
    不错很好的摸鱼帖子
    leo747604
        11
    leo747604  
    OP
       2023-12-01 14:01:36 +08:00 via iPhone
    @oamzn
    @dnfQzjPBXtWmML
    @AoEiuV020JP
    @puttsync0f
    @zebedy

    抱歉占用各位时间了, 找到原因了, 是 GitPython 这个包使用不当导致其创建了一个 '. '和 '.. ' 由于一开始是在 VS Code 远程连接看的, 文件列表里并没有像 ls 那样显示 '. ', 而只是一个点, 而传到 Git Server (Gogs) 之后它并不能正确处理这个点导致接下来的一系列问题
    AoEiuV020JP
        12
    AoEiuV020JP  
       2023-12-01 14:05:47 +08:00
    总之就是文件全名是点后面带空格?这种我也有用,可 ls 出来也不是主贴显示的样子,
    leo747604
        13
    leo747604  
    OP
       2023-12-01 14:09:03 +08:00 via iPhone
    @AoEiuV020JP 我现在也不能确定到底是怎么回事,Gogs 上还是把它识别成了目录
    [https://img.xwyue.com/i/2023/12/01/6569786b511d4.jpeg]( https://img.xwyue.com/i/2023/12/01/6569786b511d4.jpeg)
    leo747604
        14
    leo747604  
    OP
       2023-12-01 14:11:12 +08:00 via iPhone
    @AoEiuV020JP 现在是 GitPython 操作过两个目录,其中一个有问题的目录删掉了,另一个目录下 .后面带空格,另一个什么问题暂时不确定
    mephisto
        15
    mephisto  
       2023-12-01 16:51:10 +08:00
    @leo747604 有可能他只是看其来像点,实际是另外一个 unicode 字符,骗过了人眼,以前很多人这样弄欺诈域名的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1478 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 17:24 · PVG 01:24 · LAX 09:24 · JFK 12:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.