有没有软件可以做到,让软件对文件的修改只在当前终端有效?

2015-12-05 03:08:07 +08:00
 qw7692336

比如说我开了两个终端 A 和 B ,做 A 当中 mkdir memdir ,在 A 当中 ls 可以看得到 memdir ,在 B 中 ls 则看不到。

1566 次点击
所在节点    问与答
10 条回复
msg7086
2015-12-05 03:52:59 +08:00
修改是作用在文件系统上的,和终端没有关系。
如果你想要隔离应用,可以考虑容器或者监狱。
qw7692336
2015-12-05 03:53:51 +08:00
@msg7086 我的意思就是有没有一种用容器实现的方法啊
ryd994
2015-12-05 04:45:19 +08:00
@qw7692336 那你一开始就在两个根下面开容器不就行了
你到底要实现什么功能
qw7692336
2015-12-05 04:50:28 +08:00
@ryd994 就是为了测试一些东西方便。比如说测试一个删除文件的 shell 脚本。
msg7086
2015-12-05 05:11:47 +08:00
btrfs 的话可以用神奇的 subvolume 配合 docker/LXC/nspawn 创建一个容器。
如果不会折腾的话,开个虚拟机用 Snapshot 功能也是可以的。
qw7692336
2015-12-05 05:13:23 +08:00
@msg7086 我就是为了方便,看看有没有什么现成的方便的工具,还要我开虚拟机。。。那就算了,还不如 git 管理
ryd994
2015-12-05 05:59:54 +08:00
突然想到,你可以用 aufs 啊。 bashrc 里每次启动新建一个 aufs 作为当前目录。源目录挂成只读,可写挂到临时新建的文件夹。退出的时候不要 exit 而是运行一个脚本先清空临时文件夹。
qw7692336
2015-12-05 06:07:33 +08:00
@ryd994 其实也不一定非要自动完成,手动操作也可以。只是想要一个便捷一点的方式,可以快速恢复之前的状态。其实 git 也可以做到,只不过不方便,还有只对某个文件夹内有效而已。如果没有现成的这种工具就算了。
hxsf
2015-12-05 11:07:53 +08:00
看楼主的意思,这个不仅仅局限于当前目录了吧。

应该类似,终端 A 的操作全部在一个沙盒里。和外面环境隔离。

可以试试 docker 。写个脚本启动一个容器。
qw7692336
2015-12-05 16:01:58 +08:00
@hxsf 局限于当前目录也可以接受。或者手动指定某个目录。 docker 操作有这么方便吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/241282

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX