Объем переименовывает файлы с нумерацией

Учитывая, что sudo /usr/bin/sudo обычно, Вы не сможете использовать его после выполнения этого chown команда: sudo двоичный владелец будет собой, таким образом, Вы не доберетесь root полномочия при выполнении его в следующий раз.

Не делайте этого.

1
12.03.2012, 17:28
2 ответа

Вы просто хотите измениться '4' на '0'?

for f in Image4*.jpg
do
  # replace Image4 prefix with Image0
  newname="Image0${f#Image4}"
  mv "$f" "$newname"
done

Или Вы хотите вычесть 400 из числовой части? Или что-то еще?

1
27.01.2020, 23:29
  • 1
    mv "$f" Image0"${f#Image4}" намного более быстрый и более безопасный способ сделать это. $( echo | sed ) подход, даже если это работает над именами файлов как Image401.jpg, не очень устойчиво, поскольку это исказит имена файлов, содержащие нечетные символы или пробелы, и намного медленнее из-за дополнительной временной подоболочки и обрабатывает созданный для каждого файла. –  jw013 12.03.2012, 20:44
  • 2
    Все верные - и это не была даже лучшая команда sed для использования. –  Useless 12.03.2012, 20:59

В соответствии с Linux, для изменения первого 4 в именах файлов к 0:

rename 4 0 Image4*.jpg

Под Debian, Ubuntu и производными, rename другая программа переименования файла, которая основана на выражении Perl. Любой вызов rename.ul вместо этого, или вызов сценарий переименования Perl:

rename 's/4/0/' Image4*.jpg
2
27.01.2020, 23:29

Теги

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