Имена файлов обратного обмена файлами в папке снизу вверх

Я полагаю, что вы можете использовать vi . Существует обходной путь:

crontab -l > crontab.txt
vi crontab.txt
crontab crontab.txt

Вы можете внести изменения в crontab.txt .

0
26.07.2018, 15:02
2 ответа

Предположим, что hg_*[0-9].jpgзаменяется на все файлы, которые вы хотите переименовать, в правильном «прямом» порядке, и что вы хотите записать переименованные файлы в подкаталог renamed.

Использованиеbash:

mkdir renamed || exit 1    # fail if this directory exists
names=( hg_*[0-9].jpg )

for (( i=0; i < "${#names[@]}"; ++i )); do
    cp "${names[i]}" renamed/"${names[-(i+1)]}"
done

Сначала создается список имен файлов, хранящихся в массиве names. Цикл проходит через этот сгенерированный список имен и выбирает новое имя для каждого файла со смещением от конца списка. Ни один существующий файл не будет изменен, а копии с новыми именами будут записаны в папку renamed.

1
28.01.2020, 02:31

Судя по вашему числовому порядку файлов с 5 цифрами, представляющими его, вы можете просто использовать функции glob оболочки для переименования, как вы хотите

shopt -s nullglob
fileList=(hg_test[0-9]*)
count="${#fileList[@]}"

for file in hg_test[0-9]*; do 
     echo "$file" "hg_test$(printf "%05d" "$count").jpg"
     ((count--))
done

В основном это echoфактическое имя файла с замененным именем файла. Как только вы обнаружите, что имена целы, как и ожидалось, удалите echoи используйте команду mv.

1
28.01.2020, 02:31

Теги

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