Попробуйте:
n=0; for f in *.jpg; do mv "$f" "$((++n)).jpeg.jpg"; done
Или то же самое, распределенное по нескольким строкам:
n=0
for f in *.jpg
do
mv "$f" "$((++n)).jpeg.jpg"
done
n = 0
Это инициализирует переменную n
n.
для f в * .jpg; do
Это запускает цикл по всем файлам в текущем каталоге, имена которых заканчиваются на .jpg
.
mv "$ f" "$ ((++ n)). Jpeg.jpg"
Это переименовывает файлы по вашему желанию. В bash $ ((...))
выполняет арифметические операции. Здесь он увеличивает n
каждый раз при запуске.
done
Сигнализирует об окончании цикла.
Этот код будет работать, даже если есть файлы, имена которых содержат пробелы, табуляции, символы новой строки или другие сложные символы.
glob test * .in
разворачивается в список файлов в алфавитном порядке. Это описано в man bash
:
bash сканирует каждое слово на наличие символов *,? И [. Если появляется один из этих символов , то слово рассматривается как шаблон, и заменяется отсортированным по алфавиту списком имен файлов, соответствующих шаблону ( см. Сопоставление с образцом ниже). [Курсив добавлен.]
Обратите внимание, что значение сортировки по алфавиту может зависеть от настроек вашего региона.
Нет, безопасно делиться только /usr/local и, возможно, /opt.
не /home, потому что файлы точек могут быть несовместимы в разных дистрибутивах. (но вы можете смонтировать /home в другом месте, чтобы сделать файлы доступными)
не /usr/share, потому что файлы там не зависят от архитектуры, но не от версии.
все остальные каталоги также находятся под управлением вашего дистрибутива, поэтому их совместное использование может привести к конфликтам.
Насколько я понимаю, вы хотите иметь систему с множественной -загрузкой, в которой вы можете загружать разные дистрибутивы Linux одновременно, но сохраняя одни и те же двоичные файлы в общем разделе.
То, что вы хотите сделать, невыполнимо, и если бы вы попытались это сделать, вы бы потратили в 10 раз больше времени, чем на управление каждым дистрибутивом по отдельности. Вы открываете гигантскую банку с червями.
will it be possible to install a piece of software on one distro and run it on another?
В общем, нет. Исполняемые файлы Linux компилируются по-разному для каждого дистрибутива. Они зависят от конкретных версий конкретных установленных библиотек. Вы можете запускать на всех дистрибутивах стандартный двоичный файл программного обеспечения, который не зависит от -дистрибутива, но даже программа, которая не использует внешние библиотеки и полагается только на ядро, будет зависеть от версии ядра, которая сильно отличается. от дистрибутива к дистрибутиву (например Fedora использует более продвинутую версию ядра, чем RHEL или Ubuntu ). Не говоря уже о том, что одна и та же версия ядра может быть собрана с разными параметрами конфигурации в зависимости от дистрибутива.
what is required for executables to be shared among distros (permissions, UID, GID)?
Это слишком общий вопрос. Один и тот же пакет в двух разных дистрибутивах может, например, работать под разными пользователями. Так,Требования различаются в зависимости от программного обеспечения и дистрибутива.
will upgrade of a package on one distro be visible on the other distros?
will removal of the package be visible on other distros?
Нет, каждый дистрибутив имеет свой собственный менеджер пакетов и формат пакета, и они несовместимы друг с другом (см. также этот вопрос:Почему нет по-настоящему унифицированного менеджера пакетов для Linux?). Попытка смешать их приведет к беспорядку. И компилировать каждое программное обеспечение из исходного кода, чтобы избежать работы с менеджерами пакетов, означает открывать еще одну банку червей.
Что касается ваших вопросов о точках монтирования и совместном использовании разделов, обратите внимание, что достаточно сложно просто разделить раздел /home
между разными дистрибутивами, как показано в этом вопросе.:Разные дистрибутивы Linux используют одну и ту же папку /home?
Я думаю о некоторых возможностях:
• Переносимый исполняемый файл Linux в общей папке с разрешениями на выполнение. :Я полагаю, что он должен работать для двоичных файлов командной строки и сценариев оболочки. Но учтите, что не все приложения доступны в переносимых форматах tar.gz или tar.bz2.
• Межплатформенный менеджер пакетов, такой как Snap
или Zero Install
, с соответствующими конфигурациями.
• Может быть так -называется portable applications
.
Я не думаю, что все это сложно настроить. Но вы должны изучить управление пакетами как можно лучше..
AppImages безопасно передавать из разных дистрибутивов, поскольку они не изменяют файлы в системе. На самом деле, это один из основных моментов формата AppImage -— вы загружаете приложение один раз, а затем можете запускать его на любом из ваших дистрибутивов без необходимости повторной -загрузки того же приложения.
Вы можете хранить AppImages в любом разделе, включая общие сетевые ресурсы.