Иногда я чувствую себя подобно каталогу, несколько раз я чувствую себя подобно регулярному файлу

К сожалению, я думаю, что ответ нет. Задающий этот вопрос, переключенный на tmux конкретно, потому что это имеет ту функцию (Вы передаете -r отметьте при присоединении), поэтому если у Вас есть опция переключить мультиплексоры, это - вероятно, Ваш лучший выбор

4
14.04.2019, 12:33
2 ответа

Я не вполне понимаю, почему Вы не хотите, чтобы файлы появились как отдельные файлы при некоторых обстоятельствах. В конце концов, если my_books_on_m4_programming.arch каталог, можно все еще скопировать его с cp -rp, найдите его с locate и так далее.

FUSE (Файловая система в Пространстве пользователя) позволяет реализовывать легкие файловые системы, и существует много файловых систем FUSE, которые обеспечивают альтернативные представления существующих файлов. Делание того же файла (как в, тот же путь к файлу) появляется, как и каталог и регулярный файл перепутали бы много приложений, но существует много существующих решений заставить тот же файл появиться как каталог в одном месте и как файл в другом месте.

В частности, AVFS делает архивы, и удаленные файлы появляются как каталоги. Я думаю, что это - самая близкая существующая вещь к тому, что Вы ищете.

$ mountavfs
$ ls my_books_on_m4_programming* 
my_books_on_m4_programming.tgz
$ tar tzf my_books_on_m4_programming.tgz 
beginner/m4_for_dummies.pdf
$ ls ~/.avfs$PWD/my_books_on_m4_programming.tgz\#/
beginner
$ okular ~/.avfs$PWD/my_books_on_m4_programming.tgz\#/beginner/m4_for_dummies.pdf
3
27.01.2020, 20:56

Вы могли рассмотреть использование петлевых файловых систем.

Во-первых, создайте файл для содержания файловой системы:

dd if=/dev/zero of=~/myfilesys bs=8K count=256

Это создаст пустой файл на 2 ГБ. Затем, необходимо подключить его к устройству закольцовывания:

losetup /dev/loop0 ~/myfilesys

Теперь, создайте файловую систему:

mkfs -t ext3 /dev/loop0

Наконец, смонтируйте свою файловую систему:

mkdir ~/myfilesys.d
mount /dev/loop0 ~/myfilesys.d

Когда Вы закончены:

umount /dev/loop0
losetup -d /dev/loop0

И снова использовать позже:

losetup /dev/loop0 ~/myfilesys
mount /dev/loop0 /mnt/myfilesys.d

(Да, я знаю, что можно объединиться losetup и mount шаги, но в иллюстративных целях, это более ясно видеть то, что продолжается путем разделения их).

Теперь, ~/myfilesys файл будет смотреть и действовать как файл всех команд, но при монтировании Вы видите файлы в этой файловой системе в ~/myfilesys.d.

1
27.01.2020, 20:56
  • 1
    Будет этот подход позволять файловым системам расти? В Вашем примере в конечном счете при необходимости в myfilesys.d для подхождения 3, это позволит его, или будете Вы иметь сделать новую петлевую фс и скопируйте ее? –  HandyGandy 23.07.2011, 05:27
  • 2
    Поскольку я показал выше, нет - когда Вы достигнете определенного размера файла, Ваша файловая система будет 'полна', однако можно создать файл как 'редкий' файл с dd и сделайте это намного больше. Если Вы делаете это, только фактическое используемое место занято дисковое даже при том, что файл кажется намного больше. Можно даже 'превысить возможности' диска таким образом, например, создав 10 редких файлов на 300 ГБ на диске на 1 ТБ. Основная выгода - то, что необходимо не забыть рассматривать эти файлы как редкие файлы при копировании / перемещение их и т.д. –  Mike Insch 24.07.2011, 16:51

Теги

Похожие вопросы