Chromium Wheel Smooth Scroller
В Chrome это Soluttion: https://chrome.google.com/webstore/detail/chromium-wheel-smooth-scr/khpcanbeojalbkpgpmjpdkjnkfcgfkhb
Просто великолепно!
Вы можете использовать find с несколько сложной командой exec:
find . -iname '*?.?*' -type f -exec bash -c 'EXT="${0##*.}"; mkdir -p "$PWD/${EXT}_dir"; cp --target-directory="$PWD/${EXT}_dir" "$0"' {} \;
# '*?.?*' requires at least one character before and after the '.',
# so that files like .bashrc and blah. are avoided.
# EXT="${0##*.}" - get the extension
# mkdir -p $PWD/${EXT}_dir - make the folder, ignore if it exists
Заменить cp на echo для сухого хода.
Более эффективным и более аккуратным было бы сохранить команду bash в скрипте (например, в /path/to/the/script.sh):
#! /bin/bash
for i
do
EXT="${i##*.}"
mkdir -p "$PWD/${EXT}_dir"
mv --target-directory="$PWD/${EXT}_dir" "$i"
done
И затем запустите find: [!d4 ]
find . -iname '*?.?*' -type f -exec /path/to/the/script.sh {} +
Этот подход довольно гибкий. Например, чтобы использовать имя файла вместо расширения (filename.ext), мы использовали бы это для EXT:
NAME="${i##*/}"
EXT="${NAME%.*}"
ls | gawk -F. 'NF>1 {f= $NF "-DIR"; system("mkdir -p " f ";mv " $0 " " f)}'
Вычисление списка расширений (после перемещения):
ls -d *-DIR
Вычисление списка расширений (перед перемещением):
ls -X | grep -Po '(?<=\.)(\w+)$'| uniq -c | sort -n
(в этом последнем пример, мы вычисляем количество файлов для каждого расширения и сортируем его)
Попробуйте этот сценарий оболочки.
#!/bin/sh
src=`dirname "$1"`/`basename "$1"`;
for file in "$src"/*?.?*; do
if test -f "$file"; then
dest="$src${file##*.}"_files;
mkdir -p "$dest";
mv "$file" "$dest";
fi;
done;
# pass the directory to re-organize as first argument
# moves only regular files which have extension
# ignores other type of files including
# files having no extension, hidden files, directories, and links.
Если у вас установлено имя переименования Perl / prename:
rename 's!(.*)\.(\w+)$! mkdir($2); "$2/$&"!ge' *