如何为路径中可用的“cat”文件创建别名

如何为路径中可用的“cat”文件创建别名

我有两个大文件(每个 150G),我需要使用一个工具将它们作为单个文件提供(因为该工具只接受一个文件)。但是,出于多种原因,我不想合并这些文件,但我无法使用类似<(cat file1 file2)或之类的东西来管道传输它们,myfile=$(cat file1 file2)因为脚本使用的是输入文件的路径,而不是其内容。

因此我需要类似下面的内容:

alias myfile = "cat file1 file2"

因此使用以下命令即可起作用:

tool_x --file /path/myfile 

我已经尝试过这个提到的命令,但它不起作用。

我只需要能够将“cat”命令的结果视为实际文件,并可以使用路径访问该文件。

有可能实现这样的目标吗?

答案1

您可以使用命名管道:

mkfifo /path/myfile
cat file1 file2 > /path/myfile &

这里,要么cat将命令发送到后台,要么你可以tool_x在另一个终端中运行,因为它cat会阻塞直到某些内容开始从管道读取:

tool_x --file /path/myfile

这实际上就是流程替代自动为您执行的操作。

答案2

您可以使用临时文件mktemp像这样:

myfile="$(mktemp)"
cat file1 file2 > "$myfile"
tool_x --file "$myfile"

哪里$myfile会扩展为实际路径,例如/tmp/tmp.Tg9Epuetsr

相关内容