Единственным путем я знаю, должен запустить приложение GUI с корнем (sudo) полномочия. Так, если Вы делаете что-то как sudo dolphin
или независимо от того, что Ваш предпочтительный файловый менеджер, чем тогда, когда Вы нажимаете на 'неизвестный' тип файла, и установка предложена, Вам уже наследовали полномочия пользователя root от окна файлового менеджера. Однако под управлением файловые менеджеры GUI с полномочиями пользователя root не рекомендуются из соображений безопасности.
Или, Вы могли запустить свой установщик GUI непосредственно с sudo, как sudo your_gui_package_manager_application
(т.е. sudo sulfur
если Вы находитесь на Sabayon).
Я не уверен, но я думаю, что можно/выполнить sudo что-то непосредственно от любимого средства запуска (Gnome - делают, krunner, весь-начинающий, и т.д.).
В zsh это, легко покончили zmv
функция. Поместить autoload -U zmv
в Вашем ~/.zshrc
, или выполненный это однажды в Вашей оболочке, затем:
zmv '* .pdf' '${f// /}'
Это удаляет все пробелы из имени файла. Если Вы только хотите удалить тот перед .pdf
расширение:
zmv '* .pdf' '${f# .pdf}.pdf'
или использование круглых скобок для разграничивания групп, которые могут использоваться в качестве обратных ссылок:
zmv '(*) .pdf' '$1.pdf'
Если Вы хотите действовать в подкаталогах также:
zmv '**/* .pdf' '${f# .pdf}.pdf'
или (отмечают, что необходимо использовать (**/)
, нет (**)/
):
zmv '(**/)(*) .pdf' '$1$2.pdf'
В соответствии с Linux, с или без zsh, если существует только это побочное пространство в именах файлов:
rename \ .pdf .pdf *\ .pdf
или, если существует только это пространство в настоящих именах:
rename ' ' '' *\ .pdf
Если Вы хотите действовать в подкаталогах также в ksh93 ≥o + или колотить ≥4, можно использовать **
соответствовать файлам в подкаталогах. В ударе необходимо работать shopt -s globstar
сначала (вставляет эту строку Ваш ~/.bashrc
) и set -o globstar
в ksh93.
rename \ .pdf .pdf **/*\ .pdf
Остерегайтесь тот удар следует за символьными ссылками при рекурсивном вызове каталогов.
Без преимущества **
, можно использовать find
рекурсивно вызывать.
find . -name '* .pdf' -exec rename ' .pdf' .pdf {} +
Под Debian и производными (включая Ubuntu) и большинство систем не-Linux та поставка с perl
, rename
команда является другой, которая берет выражение Perl в качестве аргумента вместо строки для замены и замещающая строка. Любое использование rename.ul
в командах выше (под Debian и производными), или с Perl rename
:
rename 's/ \.pdf$/.pdf/' -- *\ .pdf # strip the space before the extension
rename 's/ //g' -- *\ .pdf # strip all spaces
Это защитит от случайной перезаписи, если это будет важно.
IFS=$'\n'
for i in $(find . -name '* .pdf')
do
mv -i "$i" "${i% .pdf}.pdf"
done
При выполнении этого в интерактивной оболочке, Вы могли бы хотеть выйти из нее сразу, так как Вы изменяете IFS.
rename ... *\ .pdf
перестанут работать, если будут файлы PDF, имя которых запускается с-
еслиPOSIXLY_CORRECT=
находится в среде. Вам нужно--
для предотвращения его но это должно пойти перед аргументами неопции. – Stéphane Chazelas 26.01.2014, 01:22