Вот один способ сделать это в Bash:
for i in *; do [ "${i/%MP3/mp3}" != "$i" ] && echo "$i" "${i/%MP3/mp3}"; done
Я использовал echo
здесь, таким образом, сама команда ничего не делает кроме пар печати имен файлов. Если тот список представляет изменения, Вы хотите сделать, то можно измениться echo
к чему-то как mv -i --
который затем переместит Ваши файлы (и предложит Вам прежде, чем перезаписать).
for
выполняет итерации через каждый файл, подобранный *
. Затем мы определяем, является ли расширение уже нижним регистром, если это, мы идем дальше, если это не, мы продолжаем перемещать его (или повторять его, в зависимости от обстоятельств). Это использует Bash, создал в строковых операциях, о которых можно читать здесь: http://tldp.org/LDP/abs/html/string-manipulation.html
Можно узнать код клавиши ключа через XKB, например
xkbcomp -a -dflts -xkb $DISPLAY - | sed -ne 's/^ *<LWIN> *= *\([0-9][0-9]*\).*/\1/p'
xkbcomp -a -dflts -xkb $DISPLAY - | grep 'WIN>'
. – geekosaur 15.03.2011, 22:35