硬链接/软链接多个文件到一个文件

qua*_*rtz 4 hard-link symlink cat

我在一个文件夹中有很多文件。我想将所有这些文件连接到一个文件中。例如 cat * > final_file; 但这会增加磁盘空间,也会消耗时间。有没有办法可以将所有文件硬链接/软链接到 final_file?例如 ln * final_file。

Mar*_*rco 5

有了链接,恐怕这是不可能的。但是,您可以使用命名管道。例子:

# create some dummy files
echo alpha >a
echo beta  >b
echo gamma >c

# create named pipe
mkfifo allfiles

# concatenate files into pipe
cat a b c >allfiles
Run Code Online (Sandbox Code Playgroud)

最后一个调用将阻塞,直到某个进程从管道读取然后退出。对于连续操作,可以使用循环,它等待进程读取并重新开始。

while true; do
  cat a b c >allfiles
done
Run Code Online (Sandbox Code Playgroud)