Следующие команды в каталоге, содержащем шрифты, должны работать, если вы хотите использовать из-за пределов каталога хранения шрифтов, измените for f in ./* на for f in /directory/containing/fonts/*. Это очень основанный на оболочке метод, поэтому он довольно медленный и также нерекурсивный. Это создаст только каталоги, если есть файлы, которые начинаются с совпадающего символа.
target=/directory/to/store/alphabet/dirs
mkdir "$target"
for f in ./* ; do
if [[ -f "$f" ]]; then
i=${f##*/}
i=${i:0:1}
dir=${i^}
if [[ $dir != [A-Z] ]]; then
mkdir -p "${target}/#" && mv "$f" "${target}/#"
else
mkdir -p "${target}/$dir" && mv "$f" "${target}/$dir"
fi
fi
done
Как один лайнер, снова из каталога хранения шрифтов:
target=/directory/to/store/alphabet/dirs; mkdir "$target" && for f in ./* ; do if [[ -f "$f" ]]; then i=${f##*/}; i=${i:0:1} ; dir=${i^} ; if [[ $dir != [A-Z] ]]; then mkdir -p "${target}/#" && mv "$f" "${target}/#"; else mkdir -p "${target}/$dir" && mv "$f" "${target}/$dir" ; fi ; fi ; done
Метод, использующий find с аналогичной строковой манипуляцией с использованием расширения параметра bash, который будет рекурсивным и должен быть несколько быстрее, чем версия чистой оболочки:
find . -type f -exec bash -c 'target=/directory/to/store/alphabet/dirs ; mkdir -p "$target"; f="{}" ; i="${f##*/}"; i="${i:0:1}"; i=${i^}; if [[ $i = [[:alpha:]] ]]; then mkdir -p "${target}/$i" && mv "$f" "${target}/$i"; else mkdir -p "${target}/#" && mv "$f" "${target}/#"; fi' \;
Или более читаемо:
[ f4]Вы можете попробовать плагин селективного блокировщика Javascript, например ScriptNo или NotScript. Затем вы можете внести в белый список защищенные сайты, блокируя все остальное (включая всплывающие окна и отслеживание сайтов).
Ну, в Google Chrome (частной версии Chromium) я использую комбинацию:
Всегда работает, без сообщений об ошибках.
Вы можете попробовать плагин селективного блокировщика Javascript, например ScriptNo или NotScript. Затем вы можете внести в белый список защищенные сайты, блокируя все остальное (включая всплывающие окна и отслеживание сайтов).
Ну, в Google Chrome (частной версии Chromium) я использую комбинацию:
Всегда работает, без сообщений об ошибках.
Вы можете попробовать плагин селективного блокировщика Javascript, например ScriptNo или NotScript. Затем вы можете внести в белый список защищенные сайты, блокируя все остальное (включая всплывающие окна и отслеживание сайтов).
Ну, в Google Chrome (частной версии Chromium) я использую комбинацию:
Всегда работает, без сообщений об ошибках.
Вы можете попробовать плагин селективного блокировщика Javascript, например ScriptNo или NotScript. Затем вы можете внести в белый список защищенные сайты, блокируя все остальное (включая всплывающие окна и отслеживание сайтов).
Ну, в Google Chrome (частной версии Chromium) я использую комбинацию:
Всегда работает, без сообщений об ошибках.
Вы можете попробовать плагин селективного блокировщика Javascript, например ScriptNo или NotScript. Затем вы можете внести в белый список защищенные сайты, блокируя все остальное (включая всплывающие окна и отслеживание сайтов).
Ну, в Google Chrome (частной версии Chromium) я использую комбинацию:
Всегда работает, без сообщений об ошибках.
Вы можете попробовать плагин селективного блокировщика Javascript, например ScriptNo или NotScript. Затем вы можете внести в белый список защищенные сайты, блокируя все остальное (включая всплывающие окна и отслеживание сайтов).
Ну, в Google Chrome (частной версии Chromium) я использую комбинацию:
Всегда работает, без сообщений об ошибках.
Вы можете попробовать плагин селективного блокировщика Javascript, например ScriptNo или NotScript. Затем вы можете внести в белый список защищенные сайты, блокируя все остальное (включая всплывающие окна и отслеживание сайтов).
Ну, в Google Chrome (частной версии Chromium) я использую комбинацию:
Всегда работает, без сообщений об ошибках.