Переместите и переименуйте файлы, которые не имеют никакого расширения имени

У меня есть проблемы при выяснении, как сделать этот сценарий удара, так как я очень плохо знаком с ударом.

Я хочу захватить все файлы, которые я имею в каталоге, меняю их имена (я думаю, что изменяющаяся часть имен может быть, покончили mv) и переместите их в другой каталог (снова с mv). Проблема состоит в том, что файлы не имеют расширения. Их имена являются просто числами как: 1, 2, 3 и т.д. Просто число. Как я захватываю каждый файл без расширения, меняю его имя и перемещаю его?

Спасибо.

1
задан 26 July 2019 в 10:35

2 ответа

Можно использовать расширенный globbing для поиска файлов только с цифрами на их имена:

shopt -s extglob
for file in +([0-9]) ; do
    newname=newpath/...    # Build the new name.
    mv "$file" "$newname"
done
3
ответ дан 7 December 2019 в 12:37

Лично, я использовал бы basename команда, чтобы захватить само имя файла и протестировать его с grep, если бы это имеет точечный символ, который означал бы, что это имеет расширение. Это может использоваться внутри, если оператор, и если он действительно использует continue оператор для движения в следующий файл. Что касается перемещения, которое может следовать если оператор. Тот путь mv команда недостижима, если это не имеет расширения

0
ответ дан 7 December 2019 в 12:37

Другие вопросы по тегам:

Похожие вопросы: