Замените подстроку имен файлов в каталоге

Ничто нового вообще. Цитата ниже от https://lkml.org/lkml/2011/5/29/204

Я решил просто стиснуть зубы, и назвать следующую версию 3.0. Это будет выпущено достаточно близко к 20-летней метке, которая является оправданием достаточно за меня, хотя честно, настоящая причина просто, что я не могу никакой longe rcomfortably считать целых 40.

Я особенно как:

Целое изменение нумерации было обсуждено наконец Саммит Ядра лет, и был план поднять его в этом году также. Но давайте столкнемся с ним - какой смысл того, чтобы быть главными, если Вы не можете выбрать цвет гаража для велосипедов, не держа референдум по нему? Таким образом, я просто иду весь альфа-самец и просто перенумеровываю его. Вам понравится он.

И наконец:

Таким образом, каковы большие изменения?

Ничего. Абсолютно ничто. Несомненно, у нас есть обычные два изменения драйвера третей и много случайных мер, но дело в том, что 3.0 примерно перенумеровывает, мы очень не делаем KDE-4 или Gnome-3 здесь. Никакая поломка, никакие специальные страшные новые возможности, ничто вообще как этот. Мы делали основанные на времени выпуски много лет теперь, это никоим образом не о функциях. Если Вы хотите оправдание за изменение нумерации, действительно необходимо посмотреть на основанный на времени ("20 лет") вместо этого.

4
05.02.2016, 00:12
2 ответа

Когда Вы говорите, что файлы "имена включают общее слово", я предполагаю, что Вы обращаетесь к тому, что они совместно используют .cc расширение: если так, с помощью ответа Gilles здесь, Вы могли создать команду, которая достигнет Вашей цели:

 find -type f -exec sh -c '
    for file; do [ "${file##*.}" = "cc" ] && 
    mv -- "$file" "${file%.cc}.ccp"; done
    ' -- {} +

См. этот ответ на ТАК для большего количества детали

3
27.01.2020, 20:53

В zsh:

autoload zmv
zmv '(**/)(*).cc' '$1$2.cpp'

В ударе ≥4:

for x in **/*.cc; do mv "$x" "${x%.cc}.cpp"; done

В любой оболочке:

find -name '*.cc' -exec sh -c 'for x; do mv "$x" "${x%.cc}.cpp"; done' _ {} +

Более простой, и портативный к более старым системам, но немного медленнее:

find -name '*.cc' -exec sh -c 'mv "$0" "${0%.cc}.cpp"' {} \;

См. этот ответ для объяснений.

3
27.01.2020, 20:53

Теги

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