FUSE (Файловая система в Пространстве пользователя) позволяет многим вещам быть доступным как обычные файлы (не исчерпывающий список каким-либо образом):
Существует также много файловых систем FUSE, которые дарят представлению другой файловой системы с фильтрацией, переименовывая или измененными метаданными или содержанием:
Больше возможностей на сайте FUSE и в другом месте. Можно также легко определить собственное в Erlang, Haskell, Lisp, Lua, Ocaml, Perl, Python...
pax
может скопировать и переименовать внезапно.
pax -rw -pp -k \
-s'!^source/[^/]*\([0-9]\{11\}_[0-9]\{11\}\)[^/]*\(\.[^./]*\)!\1\2!' \
-s'!.*!!' source target
pax -rw
файлы копий; -pp
сохраняет полномочия, и -k
говорит для не перезаписи существующих файлов. -s
аргументы говорят миру переименовывать файлы, поскольку он копирует. Первое преобразование делает переименование, Вы хотите (использование основных регулярных выражений и замен как в ed
). Второе преобразование поворачивает каждое имя исходного файла, это еще не подобрано в пустую строку, которая говорит миру не копировать тот файл.
Примечание zsh вентиляторам: насколько я могу сказать, Вы не можете добраться zmv
скопировать файлы, где определение не существует и оставляет другие в покое.
mmv
похож на альтернативу на первый взгляд - он поддерживает обратные ссылки и материал, но к сожалению только globing и никакие регулярные выражения. – maxschlepzig 13.05.2011, 01:17