【发布时间】:2021-12-28 04:53:58
【问题描述】:
我有一些我必须访问的路径,这是安装的结果。
我希望通过脚本自动安装,并且我希望该脚本在由于无法访问路径而引发错误之前运行。
例如,假设脚本是
echo scripting!
mkdir -p /non_existing_path
并且我希望它在尝试(以任何方式)访问路径 /non_existing_path 时运行。
所以当我这样做时
cd /non_existing_path
或
touch /non_existing_path/my_file.txt
它总是会成功,输出为scripting!。实际上,脚本会比这更详细。
这可能吗?
【问题讨论】:
-
access (in any way)你将不得不修改 linux 内核来捕获open系统调用,但你为什么要这样呢?touch"访问" 许多 其他路径 - 请参阅strace touch-/etc/ld.so.cache/usr/lib/libc.so.6/usr/lib/locale/locale-archive/usr/share/locale/locale.alias/usr/lib/gconv/gconv-modules.cache你不想创建它们。我建议围绕使用参数的特定命令编写自己的包装器。 -
@KamilCuk 我可能解释错了。我不想创建它们。我希望脚本仅在访问特定路径时运行。我认为它是在该路径上连接一个钩子或侦听器。
-
您可以创建一个 fuse 文件系统,自动在该挂载点创建路径。
-
@KamilCuk 你能详细说明一下吗?我不知道 fuse 文件系统是什么或如何做到这一点。
-
那我相信这与 [bash] 无关,是吗?然后到 [命令行]?
标签: linux bash command-line hook