Criando um arquivo com vários valores de inode

3

É possível criar um "arquivo" que, essencialmente, é vinculado a vários outros arquivos.

Digamos que tenhamos um diretório / tmp / dir / com 100 arquivos. O que eu quero é poder fazer é "cat / tmp / dir_allfiles" que, em essência, seria o mesmo que cat /tmp/*

O caso de uso real é mais complicado, onde os arquivos podem estar em diferentes níveis de diretório, etc., então, por favor, não sugira que eu use apenas find ou cat */*/* ou algo similar.

Estou bem se tiver que usar o C para fazer coisas ridículas / perigosas. Estou mais interessado em saber se é possível.

Aqui estão alguns dos meus uname -a se você está curioso 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

    
por A Brothers 22.02.2017 / 19:58

2 respostas

3

Isso é definitivamente possível no nível VFS, por exemplo usando FUSE .

Em particular, concat-fuse , parece muito com o que você precisa:

concat-fuse is a FUSE based virtual filesystem for Linux that allows handling a collection of files as if they were a single one. It is essentially doing:

cat *.txt > large_file

But instead of creating large_file, it creates a virtual file and accesses the original *.txt files instead.

    
por 22.02.2017 / 20:14
0

Você não poderia fazer algo semelhante em um subshell?

cat <( cat */foo/*; cat */bar/*/baz; )

find é fenomenalmente poderoso, por favor, explique um pouco mais sobre o que você está tentando realizar, pois pode haver uma resposta muito mais simples.

    
por 22.02.2017 / 20:17

Tags