1

Я ищу программу командной строки Unix для переименования файла (или файлов) визуально, в редакторе или в строке (так же, как вы переименовываете файл на рабочем столе).

Пример. Мне часто нужно переименовать файл где-то глубоко. Представьте себе файл с неправильным расширением .js.txt (_ - курсор):

$ mv deep/inside/there/is/a/file.js.txt _

Смущает повторение всего пути в качестве второго аргумента для mv:

$ mv deep/inside/there/is/a/file.js.txt deep/inside/there/is/a/file.js

(Я знаю, что могу использовать мышь, но она все еще подвержена ошибкам). Мне лучше нажать Home и изменить mv на визуальное переименование (представьте, что оно называется vmv). Например:

$ vmv somewhere/deep/inside/there/is/a/file.js.txt
EDIT FILE NAME: somewhere/deep/inside/there/is/a/file.js.txt_

1 ответ1

3

Напиши свое. Поместите это в файл с именем vmv , сделайте его исполняемым, поместите его в ~/bin или куда угодно:

#!/bin/bash
for oldname; do
    read -rep "Edit: " -i "$oldname" newname
    if [[ $oldname != $newname ]]; then
        mv -v "$oldname" "$newname" || exit $?
    fi
fi

Делает именно то, что вы хотите.


В bash вы можете редактировать текущую командную строку в редакторе:

mv deep/inside/there/is/a/file.js.txt Ctrl-X Ctrl-E

moreutils имеет:

vidir

Debian поставляется с Perl-скриптом, который принимает регулярные выражения:

prename 's/\.txt$//' file.js.txt

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .