Я хочу иметь путь в файловой системе, который отображает все содержимое какого-либо другого пути, за исключением нескольких определенных файлов по моему выбору. Например, если следующее уже существует,
original-path
├── file1
├── file2
├── file3
├── file4
├── folder1
│ ├── file1
│ └── file2
└── folder2
├── file1
└── file2
Я хочу уметь исключать /file1, /folder1/file1 и /folder2 из нового пути, который в противном случае указывает на одни и те же данные:
new-path
├── file2
├── file3
├── file4
└── folder1
└── file2
Как я могу это сделать? Какой-то тип привязки, файловая система FUSE или умная схема ссылок?
rofs-filter, файловая система FUSE, полученная из файловой системы только для чтения, может исключать файлы с использованием регулярных выражений:
$ cat rofs-filtered.rc
^/file1$
^/folder1/file1$
^/folder2$
$ rofs-filtered -c /home/ak/sandbox/rofs-filtered.rc /home/ak/sandbox/original-path /home/ak/sandbox/new-path
$ tree {original,new}-path
original-path
├── file1
├── file2
├── file3
├── file4
├── folder1
│ ├── file1
│ └── file2
└── folder2
├── file1
└── file2
new-path
├── file2
├── file3
├── file4
└── folder1
└── file2
rofs-filter не доступен в репозиториях Ubuntu, но я начал a rofs-filter .
rofs-filter, файловая система FUSE, полученная из файловой системы только для чтения, может исключать файлы с использованием регулярных выражений:
$ cat rofs-filtered.rc
^/file1$
^/folder1/file1$
^/folder2$
$ rofs-filtered -c /home/ak/sandbox/rofs-filtered.rc /home/ak/sandbox/original-path /home/ak/sandbox/new-path
$ tree {original,new}-path
original-path
├── file1
├── file2
├── file3
├── file4
├── folder1
│ ├── file1
│ └── file2
└── folder2
├── file1
└── file2
new-path
├── file2
├── file3
├── file4
└── folder1
└── file2
rofs-filter не доступен в репозиториях Ubuntu, но я начал a rofs-filter .
rofs-filter, файловая система FUSE, полученная из файловой системы только для чтения, может исключать файлы с использованием регулярных выражений:
$ cat rofs-filtered.rc
^/file1$
^/folder1/file1$
^/folder2$
$ rofs-filtered -c /home/ak/sandbox/rofs-filtered.rc /home/ak/sandbox/original-path /home/ak/sandbox/new-path
$ tree {original,new}-path
original-path
├── file1
├── file2
├── file3
├── file4
├── folder1
│ ├── file1
│ └── file2
└── folder2
├── file1
└── file2
new-path
├── file2
├── file3
├── file4
└── folder1
└── file2
rofs-filter не доступен в репозиториях Ubuntu, но я начал a rofs-filter .
rofs-filter, файловая система FUSE, полученная из файловой системы только для чтения, может исключать файлы с использованием регулярных выражений:
$ cat rofs-filtered.rc
^/file1$
^/folder1/file1$
^/folder2$
$ rofs-filtered -c /home/ak/sandbox/rofs-filtered.rc /home/ak/sandbox/original-path /home/ak/sandbox/new-path
$ tree {original,new}-path
original-path
├── file1
├── file2
├── file3
├── file4
├── folder1
│ ├── file1
│ └── file2
└── folder2
├── file1
└── file2
new-path
├── file2
├── file3
├── file4
└── folder1
└── file2
rofs-filter не доступен в репозиториях Ubuntu, но я начал a rofs-filter .
rofs-filter, файловая система FUSE, полученная из файловой системы только для чтения, может исключать файлы с использованием регулярных выражений:
$ cat rofs-filtered.rc
^/file1$
^/folder1/file1$
^/folder2$
$ rofs-filtered -c /home/ak/sandbox/rofs-filtered.rc /home/ak/sandbox/original-path /home/ak/sandbox/new-path
$ tree {original,new}-path
original-path
├── file1
├── file2
├── file3
├── file4
├── folder1
│ ├── file1
│ └── file2
└── folder2
├── file1
└── file2
new-path
├── file2
├── file3
├── file4
└── folder1
└── file2
rofs-filter не доступен в репозиториях Ubuntu, но я начал a rofs-filter .
rofs-filter , файловая система FUSE, полученная из файловой системы только для чтения , может исключать файлы с использованием регулярных выражений:
$ cat rofs-filter.rc ^ / file1 $ ^ / folder1 / file1 $ ^ / folder2 $ $ rofs-filter -c /home/ak/sandbox/rofs-filtered.rc / home / ak / sandbox / original-path / home / ak / sandbox / new-path $ tree {original, new} -path исходный путь ├── file1 ├── file2 ├── file3 ├── file4 ├── folder1 │ ├── file1 │ └── file2 └ ── folder2 ├── file1 └── file2 new-path ├── file2 ├── file3 ├── file4 └── folder1 └── file2
rofs-filter isn ' t в репозиториях Ubuntu, но я начал запрос , чтобы он добавил .
rofs-filter , файловая система FUSE, полученная из файловой системы только для чтения , может исключать файлы с использованием регулярных выражений:
$ cat rofs-filter.rc ^ / file1 $ ^ / folder1 / file1 $ ^ / folder2 $ $ rofs-filter -c /home/ak/sandbox/rofs-filtered.rc / home / ak / sandbox / original-path / home / ak / sandbox / new-path $ tree {original, new} -path исходный путь ├── file1 ├── file2 ├── file3 ├── file4 ├── folder1 │ ├── file1 │ └── file2 └ ── folder2 ├── file1 └── file2 new-path ├── file2 ├── file3 ├── file4 └── folder1 └── file2
rofs-filter isn ' t в репозиториях Ubuntu, но я начал запрос , чтобы он добавил .
rofs-filter , файловая система FUSE, полученная из файловой системы только для чтения , может исключать файлы с использованием регулярных выражений:
$ cat rofs-filter.rc ^ / file1 $ ^ / folder1 / file1 $ ^ / folder2 $ $ rofs-filter -c /home/ak/sandbox/rofs-filtered.rc / home / ak / sandbox / original-path / home / ak / sandbox / new-path $ tree {original, new} -path исходный путь ├── file1 ├── file2 ├── file3 ├── file4 ├── folder1 │ ├── file1 │ └── file2 └ ── folder2 ├── file1 └── file2 new-path ├── file2 ├── file3 ├── file4 └── folder1 └── file2
rofs-filter isn ' t в репозиториях Ubuntu, но я начал запрос , чтобы он добавил .
Я думаю, что вы уже на правильной странице. Вы упомянули о двух вещах, которые я бы предложил.
FUSE, по-видимому, довольно просто застрять. У меня был аналогичный вопрос к этому некоторое время назад, и один из ответов упоминал FUSE. Я нашел более простой вариант (который я объясню через секунду), но если это нежелательно, FUSE, возможно, стоит исследовать.
Моя проблема заключалась в том, что у меня есть входящий каталог, где клиенты сбрасывают все виды дерьмо. Мне нужен был способ разрешить их сортировку в глубокие каталоги (например, /work/client-name/project/document.ext), но все же хватит на верхнем уровне, чтобы увидеть, что было новым. Я написал небольшой скрипт bash, который поддерживал «недавний» каталог, содержащий символические ссылки на недавний контент.
Нечто такое простое, как это может сработать для вас. Просто сохраняйте цепочку на аргументах -not -name или фильтруйте положительно, если у вас есть что-то, что вы можете найти ...
#!/bin/bash
rm new-path/* # clean up old symlinks
find original-path -type d -maxdepth 1 -not -name folder2\
-exec ln -s -t new-path/ {} +
Это только первый уровень, но вы можете развернуть его до:
Поиск каталогов, которые вы хотели бы зеркалировать. Создавать новые (реальные) каталоги в new-path. Зацикливать новые каталоги и искать старые версии для файлов, которые вы хотите, создавая символические ссылки. Как и оригинальная находка с некоторым дополнением к путям. Первоначальная инструкция по очистке также должна быть rm -rf new-path/*, потому что они настоящие. Будьте осторожны с этим.Я нашел это:
Cmdfs - виртуальная файловая система FUSE, которая применяет команду произвольного фильтра к выбранным файлам в дереве исходного каталога для создания целевых файлов.Вот статья об этом: http://www.linux-magazine.com/Online/Features/Cmdfs
И источник на github: http: / /www.linux-magazine.com/Online/Features/Cmdfs
Я думаю, что вы уже на правильной странице. Вы упомянули о двух вещах, которые я бы предложил.
FUSE, по-видимому, довольно просто застрять. У меня был аналогичный вопрос к этому некоторое время назад, и один из ответов упоминал FUSE. Я нашел более простой вариант (который я объясню через секунду), но если это нежелательно, FUSE, возможно, стоит исследовать.
Моя проблема заключалась в том, что у меня есть входящий каталог, где клиенты сбрасывают все виды дерьмо. Мне нужен был способ разрешить их сортировку в глубокие каталоги (например, /work/client-name/project/document.ext), но все же хватит на верхнем уровне, чтобы увидеть, что было новым. Я написал небольшой скрипт bash, который поддерживал «недавний» каталог, содержащий символические ссылки на недавний контент.
Нечто такое простое, как это может сработать для вас. Просто сохраняйте цепочку на аргументах -not -name или фильтруйте положительно, если у вас есть что-то, что вы можете найти ...
#!/bin/bash
rm new-path/* # clean up old symlinks
find original-path -type d -maxdepth 1 -not -name folder2\
-exec ln -s -t new-path/ {} +
Это только первый уровень, но вы можете развернуть его до:
Поиск каталогов, которые вы хотели бы зеркалировать. Создавать новые (реальные) каталоги в new-path. Зацикливать новые каталоги и искать старые версии для файлов, которые вы хотите, создавая символические ссылки. Как и оригинальная находка с некоторым дополнением к путям. Первоначальная инструкция по очистке также должна быть rm -rf new-path/*, потому что они настоящие. Будьте осторожны с этим.Я нашел это:
Cmdfs - виртуальная файловая система FUSE, которая применяет команду произвольного фильтра к выбранным файлам в дереве исходного каталога для создания целевых файлов.Вот статья об этом: http://www.linux-magazine.com/Online/Features/Cmdfs
И источник на github: http: / /www.linux-magazine.com/Online/Features/Cmdfs
Я думаю, что вы уже на правильной странице. Вы упомянули о двух вещах, которые я бы предложил.
FUSE, по-видимому, довольно просто застрять. У меня был аналогичный вопрос к этому некоторое время назад, и один из ответов упоминал FUSE. Я нашел более простой вариант (который я объясню через секунду), но если это нежелательно, FUSE, возможно, стоит исследовать.
Моя проблема заключалась в том, что у меня есть входящий каталог, где клиенты сбрасывают все виды дерьмо. Мне нужен был способ разрешить их сортировку в глубокие каталоги (например, /work/client-name/project/document.ext), но все же хватит на верхнем уровне, чтобы увидеть, что было новым. Я написал небольшой скрипт bash, который поддерживал «недавний» каталог, содержащий символические ссылки на недавний контент.
Нечто такое простое, как это может сработать для вас. Просто сохраняйте цепочку на аргументах -not -name или фильтруйте положительно, если у вас есть что-то, что вы можете найти ...
#!/bin/bash
rm new-path/* # clean up old symlinks
find original-path -type d -maxdepth 1 -not -name folder2\
-exec ln -s -t new-path/ {} +
Это только первый уровень, но вы можете развернуть его до:
Поиск каталогов, которые вы хотели бы зеркалировать. Создавать новые (реальные) каталоги в new-path. Зацикливать новые каталоги и искать старые версии для файлов, которые вы хотите, создавая символические ссылки. Как и оригинальная находка с некоторым дополнением к путям. Первоначальная инструкция по очистке также должна быть rm -rf new-path/*, потому что они настоящие. Будьте осторожны с этим.Я нашел это:
Cmdfs - виртуальная файловая система FUSE, которая применяет команду произвольного фильтра к выбранным файлам в дереве исходного каталога для создания целевых файлов.Вот статья об этом: http://www.linux-magazine.com/Online/Features/Cmdfs
И источник на github: http: / /www.linux-magazine.com/Online/Features/Cmdfs
Я думаю, что вы уже на правильной странице. Вы упомянули о двух вещах, которые я бы предложил.
FUSE, по-видимому, довольно просто застрять. У меня был аналогичный вопрос к этому некоторое время назад, и один из ответов упоминал FUSE. Я нашел более простой вариант (который я объясню через секунду), но если это нежелательно, FUSE, возможно, стоит исследовать.
Моя проблема заключалась в том, что у меня есть входящий каталог, где клиенты сбрасывают все виды дерьмо. Мне нужен был способ разрешить их сортировку в глубокие каталоги (например, /work/client-name/project/document.ext), но все же хватит на верхнем уровне, чтобы увидеть, что было новым. Я написал небольшой скрипт bash, который поддерживал «недавний» каталог, содержащий символические ссылки на недавний контент.
Нечто такое простое, как это может сработать для вас. Просто сохраняйте цепочку на аргументах -not -name или фильтруйте положительно, если у вас есть что-то, что вы можете найти ...
#!/bin/bash
rm new-path/* # clean up old symlinks
find original-path -type d -maxdepth 1 -not -name folder2\
-exec ln -s -t new-path/ {} +
Это только первый уровень, но вы можете развернуть его до:
Поиск каталогов, которые вы хотели бы зеркалировать. Создавать новые (реальные) каталоги в new-path. Зацикливать новые каталоги и искать старые версии для файлов, которые вы хотите, создавая символические ссылки. Как и оригинальная находка с некоторым дополнением к путям. Первоначальная инструкция по очистке также должна быть rm -rf new-path/*, потому что они настоящие. Будьте осторожны с этим.Я нашел это:
Cmdfs - виртуальная файловая система FUSE, которая применяет команду произвольного фильтра к выбранным файлам в дереве исходного каталога для создания целевых файлов.Вот статья об этом: http://www.linux-magazine.com/Online/Features/Cmdfs
И источник на github: http: / /www.linux-magazine.com/Online/Features/Cmdfs
Я думаю, что вы уже на правильной странице. Вы упомянули о двух вещах, которые я бы предложил.
FUSE, по-видимому, довольно просто застрять. У меня был аналогичный вопрос к этому некоторое время назад, и один из ответов упоминал FUSE. Я нашел более простой вариант (который я объясню через секунду), но если это нежелательно, FUSE, возможно, стоит исследовать.
Моя проблема заключалась в том, что у меня есть входящий каталог, где клиенты сбрасывают все виды дерьмо. Мне нужен был способ разрешить их сортировку в глубокие каталоги (например, /work/client-name/project/document.ext), но все же хватит на верхнем уровне, чтобы увидеть, что было новым. Я написал небольшой скрипт bash, который поддерживал «недавний» каталог, содержащий символические ссылки на недавний контент.
Нечто такое простое, как это может сработать для вас. Просто сохраняйте цепочку на аргументах -not -name или фильтруйте положительно, если у вас есть что-то, что вы можете найти ...
#!/bin/bash
rm new-path/* # clean up old symlinks
find original-path -type d -maxdepth 1 -not -name folder2\
-exec ln -s -t new-path/ {} +
Это только первый уровень, но вы можете развернуть его до:
Поиск каталогов, которые вы хотели бы зеркалировать. Создавать новые (реальные) каталоги в new-path. Зацикливать новые каталоги и искать старые версии для файлов, которые вы хотите, создавая символические ссылки. Как и оригинальная находка с некоторым дополнением к путям. Первоначальная инструкция по очистке также должна быть rm -rf new-path/*, потому что они настоящие. Будьте осторожны с этим.Я нашел это:
Cmdfs - виртуальная файловая система FUSE, которая применяет команду произвольного фильтра к выбранным файлам в дереве исходного каталога для создания целевых файлов.Вот статья об этом: http://www.linux-magazine.com/Online/Features/Cmdfs
И источник на github: http: / /www.linux-magazine.com/Online/Features/Cmdfs
Я думаю, что вы уже на правильной странице. Вы упомянули о двух вещах, которые я бы предложил.
FUSE, по-видимому, довольно просто застрять. У меня был аналогичный вопрос к этому некоторое время назад, и один из ответов упоминал FUSE. Я нашел более простой вариант (который я объясню через секунду), но если это нежелательно, FUSE, возможно, стоит исследовать.
Моя проблема заключалась в том, что у меня есть входящий каталог, где клиенты сбрасывают все виды дерьмо. Мне нужно было разрешить сортировать их в глубокие каталоги (например, /work/client-name/project/document.ext
), но все же у вас хватит верхнего уровня, чтобы увидеть, что было новым. Я написал небольшой скрипт bash, который поддерживал «недавний» каталог, содержащий символические ссылки на недавний контент.
Что-то простое, как это может сработать для вас. Просто держите цепочку на аргументах -not -name
или фильтруйте положительно, если у вас есть что-то, что вы можете найти ...
#! / Bin / bash rm new- path / * # очистить старые символические ссылки find original-path -type d -maxdepth 1 -not -name folder2 \ -exec ln -s -t new-path / {} +
Это это только первый уровень, но вы можете расширить его до:
new-path [ ! d3]
rm -rf new-path / *
, потому что они настоящие dirs , Будьте осторожны с этим. Я нашел это:
Cmdfs - виртуальная файловая система FUSE, которая применяет команду произвольного фильтра к выбранным файлам в дереве исходного каталога для создания файлов назначения.
blockquote >Вот статья об этом: http://www.linux-magazine.com/Online/Features/Cmdfs
И источник на github: https://github.com/mikeswain/cmdfs
Я нашел это:
Cmdfs - виртуальная файловая система FUSE, которая применяет команду произвольного фильтра к выбранным файлам в дереве исходного каталога для создания файлов назначения.
blockquote >Вот статья об этом: http://www.linux-magazine.com/Online/Features/Cmdfs
И источник на github: https://github.com/mikeswain/cmdfs
Я думаю, что вы уже на правильной странице. Вы упомянули о двух вещах, которые я бы предложил.
FUSE, по-видимому, довольно просто застрять. У меня был аналогичный вопрос к этому некоторое время назад, и один из ответов упоминал FUSE. Я нашел более простой вариант (который я объясню через секунду), но если это нежелательно, FUSE, возможно, стоит исследовать.
Моя проблема заключалась в том, что у меня есть входящий каталог, где клиенты сбрасывают все виды дерьмо. Мне нужно было разрешить сортировать их в глубокие каталоги (например, /work/client-name/project/document.ext
), но все же у вас хватит верхнего уровня, чтобы увидеть, что было новым. Я написал небольшой скрипт bash, который поддерживал «недавний» каталог, содержащий символические ссылки на недавний контент.
Что-то простое, как это может сработать для вас. Просто держите цепочку на аргументах -not -name
или фильтруйте положительно, если у вас есть что-то, что вы можете найти ...
#! / Bin / bash rm new- path / * # очистить старые символические ссылки find original-path -type d -maxdepth 1 -not -name folder2 \ -exec ln -s -t new-path / {} +
Это это только первый уровень, но вы можете расширить его до:
new-path [ ! d3]
rm -rf new-path / *
, потому что они настоящие dirs , Будьте осторожны с этим. Я нашел это:
Cmdfs - виртуальная файловая система FUSE, которая применяет команду произвольного фильтра к выбранным файлам в дереве исходного каталога для создания файлов назначения.
blockquote >Вот статья об этом: http://www.linux-magazine.com/Online/Features/Cmdfs
И источник на github: https://github.com/mikeswain/cmdfs
Я думаю, что вы уже на правильной странице. Вы упомянули о двух вещах, которые я бы предложил.
FUSE, по-видимому, довольно просто застрять. У меня был аналогичный вопрос к этому некоторое время назад, и один из ответов упоминал FUSE. Я нашел более простой вариант (который я объясню через секунду), но если это нежелательно, FUSE, возможно, стоит исследовать.
Моя проблема заключалась в том, что у меня есть входящий каталог, где клиенты сбрасывают все виды дерьмо. Мне нужно было разрешить сортировать их в глубокие каталоги (например, /work/client-name/project/document.ext
), но все же у вас хватит верхнего уровня, чтобы увидеть, что было новым. Я написал небольшой скрипт bash, который поддерживал «недавний» каталог, содержащий символические ссылки на недавний контент.
Что-то простое, как это может сработать для вас. Просто держите цепочку на аргументах -not -name
или фильтруйте положительно, если у вас есть что-то, что вы можете найти ...
#! / Bin / bash rm new- path / * # очистить старые символические ссылки find original-path -type d -maxdepth 1 -not -name folder2 \ -exec ln -s -t new-path / {} +
Это это только первый уровень, но вы можете расширить его до:
new-path [ ! d3]
rm -rf new-path / *
, потому что они настоящие dirs , Будьте осторожны с этим.