V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
2232588429
V2EX  ›  Linux

tmp 目录和 var 目录是什么关系?为什么在有的系统里面,想进入 var 目录就直接跳到 tmp 目录了呢?

  •  
  •   2232588429 · Feb 17, 2017 · 6764 views
    This topic created in 3364 days ago, the information mentioned may be changed or developed.
    问问大家,谢谢!
    18 replies    2023-07-24 11:17:36 +08:00
    RadishWind
        1
    RadishWind  
       Feb 17, 2017
    啥系统
    Pastsong
        2
    Pastsong  
       Feb 17, 2017 via Android
    tmp 目录是存放临时文件,标准里是推荐定期清除的(比如重启)
    var 目录是存放经常会变动的文件,比如 log
    greyterry
        3
    greyterry  
       Feb 17, 2017
    2 楼正解,这两个文件系统应该没什么关联才对。
    JackyBao
        4
    JackyBao  
       Feb 17, 2017 via Android
    lz 说的是路由器这类嵌入式 linux 吧?
    2232588429
        5
    2232588429  
    OP
       Feb 17, 2017
    @JackyBao 是的,请问这种环境下,我想找到一类软件文件路径该怎么查呢?
    JackyBao
        6
    JackyBao  
       Feb 17, 2017 via Android
    @2232588429
    问题再讲的具体些
    2232588429
        7
    2232588429  
    OP
       Feb 17, 2017
    @2232588429 比如说路由里面有个 pdnsd ,我现在想找日志文件,但是在 tmp/log 和 tmp/pdnsd 里都找不到。这个该上哪找呢?
    ArcherFeel
        8
    ArcherFeel  
       Feb 17, 2017
    查看该进程所打开的文件句柄, 当然前提是系统里面有 lsof, 一般的 linux 都有, 嵌入式的不确定了. lsof | grep $pid (进程 id)
    JackyBao
        9
    JackyBao  
       Feb 17, 2017 via Android
    pdnsd 默认不开起 log ,加-g 参启动,会在 /var/pdnsd 目录下生成 log 文件。
    cos
        10
    cos  
       Feb 17, 2017
    @2232588429 路由器?貌似 openwrt 的日志都统一用 logread 。。。。
    hosiet
        11
    hosiet  
       Feb 18, 2017 via Android
    第一反应是告诉楼主 pdnsd 上游已经死掉好几年了,没人开发了。
    第二反应是先去查软件文档,不同软件对日志处理不同。
    第三反应是建议去看看 FHS 标准,或者 man hire(7)
    第四反应是 OpenWRT 什么的不是完整 POSIX 兼容环境,所以 FHS 可能不适用
    第五建议楼主仔细看一看那些 /var 或者 /log 什么的目录到底是不是真的目录,说不定它是符号链接,所以你不知不觉就蹦到其它目录下面了。例如 OpenWRT 下,/var 默认是指向 /tmp 的符号链接。
    2232588429
        12
    2232588429  
    OP
       Feb 18, 2017
    @hosiet 嗯,我就是这个问题, var 跳到 tmp 。那么我要找真正的 var 目录该如何找呢?
    hosiet
        13
    hosiet  
       Feb 18, 2017 via Android
    @2232588429 默认没有真正的 /var 。不存在。路由器上没有必要把宝贵的空间拿来永久存放可变数据。
    2232588429
        14
    2232588429  
    OP
       Feb 18, 2017
    @hosiet 那 pdnsd 的这个日志其实就是不存在的?
    hosiet
        15
    hosiet  
       Feb 19, 2017 via Android
    ……

    /var 只是指向 /tmp 目录的软链接而已,当然该存在的东西仍然会存在。系统开机默认抹掉 /tmp 目录下的一切东西,所以如果有日志放在 /var 下面的话,路由器重启一次日志就会消失。
    2232588429
        16
    2232588429  
    OP
       Feb 19, 2017
    @hosiet 那 pdnsd 日志在 openwrt 里应该放哪个文件夹呢?
    hosiet
        17
    hosiet  
       Feb 19, 2017 via Android
    你问我也没用啊,我不用 pdnsd ,软件作者写程序时放在了哪里就在哪里, OpenWRT 有没有改过我也不知道。(
    Chenhe
        18
    Chenhe  
       Jul 24, 2023   ❤️ 1
    今天在 opemwrt 上遇到了相同问题,看[这个 commit]( https://github.com/openwrt/openwrt/commit/57807f50ded6cf0996284a850084183af13d5894)。默认情况下 openwrt 把 `/var` 链接到 `/tmp` 了,这俩本没啥关系,是为了减少路由器闪存写入量的。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   916 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 23:00 · PVG 07:00 · LAX 16:00 · JFK 19:00
    ♥ Do have faith in what you're doing.