• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

linux平台上,有无软件可以制作虚拟文件指向多个文件,避免重复占用空间?

php 搞代码 3年前 (2022-01-22) 18次浏览 已收录 0个评论
文章目录[隐藏]

运行平台:CentOS

需求:类似这样

/opt/virtual.file 指向:/opt/1.file /opt/2.file /opt/3.file

首先,我知道合并的命令,但是这样会新建一个文件,并占用空间

我希望的是访问 /opt/virtual.file,相当于系统动态把这三个文件合并成一个当成一个来访问

这个需求并不是使用nginx_http_concat中合并js/css的请求

因为上传文件的时候为了保证稳定性,按照 5M/块 的情况下分隔上传,虽然也可以使用程序合并这些块,但是有没软件可以让系统做虚拟文件,指向到这些分块,这样就可以不用合并了

回复内容:

运行平台:CentOS

需求:类似这样

/opt/virtual.file 指向:/opt/1.file /opt/2.file /opt/3.file

首先,我知道合并的命令,但是这样会新建一个文件,并占用空间

我希望的是访问 /opt/virtual.file,相当于系统动态把这三个文件合并成一个当成一个来访问

这个需求并不是使用nginx_http_concat中合并js/css的请求

因为上传文件的时候为了保证稳定性,按照 5M/块 的情况下分隔上传,虽然也可以使用程序合并这些块,但是有没软件可以让系统做虚拟文件,指向到这些分块,这样就可以不用合并了

这个必须使用fuse来实现,以及大神写的:https://github.com/schlaile/c…

  1. 安装编译concatfs

    <code>yum install fuse fuse-develgit clone https://github.com/schlaile/concatfs.gitcd concatfs/srcgcc -Wall concatfs.c `pkg-config fuse --cflags --libs` -o concatfscp ./concatfs /bin</code>
  2. 使用挂载的方式启动一个目录
    原目录:
    /opt/www/website/
    里面包含文件
    index.html test.html
    创建一个待挂载的目录
    mkdir /opt/www/website_mnt
    执行
    concatfs /opt/www/website/ /opt/www/website_mnt
    没报错就已经在后台运行

  3. 创建一个特殊的文件名 包含-concat-

    只要包含 -concat- 将会被concatfs特殊解析

    <code>vim /opt/www/website/1-concat-.txt</code>

    内容

    <code>index.htmltest.html</code>

    注意结尾列也需要有回车符 LF,不然最后那个文件不会加载

  4. 现在访问 /opt/www/website_mnt/1-concat-.txt 便会返回这两个文件合并之后的数据
    相当于这两个文件动态合并了,其实在物理上并没有合并
    注意是 website_mnt/1-concat-.txt 目录
    访问原目录的 website/1-concat-.txt 仍然是原文件

    本文来源gaodai.ma#com搞##代!^码@网*
    搞gaodaima代码

  5. PS: 并没有测试写入 /opt/www/website_mnt/1-concat-.txt 的情况


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:linux平台上,有无软件可以制作虚拟文件指向多个文件,避免重复占用空间?

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址