grepping、awking、sedding 和管道是任何类 Unix 操作系统用户的日常例行程序,无论是在命令行上还是在 shell 脚本中(从现在开始统称为过滤器)。
从本质上讲,当使用“标准”Unix CLI 程序和 shell 内置程序(从现在开始统称为命令)时,过滤器需要在每个过滤器步骤中为 stdin、stdout 和 stderr 提供精确的预期格式才能正常工作。在下文中,我将某些命令的这种精确预期格式称为此命令的 API。
作为具有 Web 开发背景的人,我将这种数据收集和数据处理在技术上与Web 抓取进行了比较- 这种技术在数据呈现方式发生最细微的变化时非常不稳定。
我的问题现在与 Unix 命令 API 的稳定性有关。
我有以下一系列命令:
cd / && ls | ( cd /tmp && cat >dumpfile)
Run Code Online (Sandbox Code Playgroud)
这一系列命令执行以下操作:它创建一个名为/tmp/dumpfile
. 该文件包含根目录的列表。
该cd / && ls
输出被输送到一个子shell。我觉得奇怪的是,在子外壳中,不是cd /tmp
吞下ls
输出,而是 后者cat >dumpfile
获取它并将其写入文件。这里发生了什么?
我不得不处理在Amazon EC2上运行的OpenShift RHEL Linux安装。在文件系统中,有一个名为mounted to ... 的设备文件和一个名为mounted to的设备文件。/dev/xvde1
/
/dev/xvde2
/var
什么是xvdeN设备文件?
amazon-ec2 ×1
api ×1
block-device ×1
cd-command ×1
command-line ×1
filter ×1
linux ×1
mount ×1
pipe ×1
shell ×1
standard ×1
subshell ×1
xen ×1