Использование tmpfs и изменение размера

Следующее должно сделать то, о чем вы просите:

#!/bin/bash
sz="gom"
dir="/where/the/files/are"

find $dir -type f -name "*${sz}*" -print0 | while read -d '' -r c; do
    if [[ -f "$(echo $c | sed 's/'"${sz}"'//g')" ]]; then
        # Strip the 'echo' to have this actually do things
        echo rm -v "$c"
    fi
done

Некоторые примечания к изменениям и исправлениям:

  • Найти -printf "% f \ n" предпочтительнее, чем -exec basename {} \; . В этом случае я удалил find с удалением имени каталога, чтобы сценарий был безопасен для не плоских структур каталогов.
  • for c в ossz никогда не должно было работать - пустое имя ossz не является переменной. $ ossz было бы необходимо.
  • Использование sed , вероятно, предпочтительнее, чем полагаться на сопоставление с шаблоном bash и замену по причинам удобочитаемости.

Пример:

Для каталога, содержащего следующие файлы:

alb  alba  algomb  algomba  gomb

Сценарий, приведенный выше, выведет следующее:

rm -v ./algomb
rm -v ./algomba
5
07.09.2018, 19:39
0 ответов

Теги

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