копировать файлы под новое имя - кратчайший путь

Кроме тестирования производительности, я не знаю ни одного сценария, при котором вам нужно было бы очищать кеши. Кеши Linux управляются грамотно, и используемая ими память всегда доступна по запросу. Таким образом, вы, вероятно, ничего не добьетесь, промывая их, кроме замедления вашей системы.

Хорошее прочтение по этому поводу см. на этой веб-странице .

1
22.06.2017, 23:52
2 ответа

Это возможно без написания сценария («файл bash»), но не без использования цикла:

for f in *.ext ; do cp -- "$f" "$(basename "$f" .ext)" ; done

basename может использоваться для удаления суффикса.

2
27.01.2020, 23:25

Без шлейфа это определенно возможно. Это хорошо ... Я оставлю это на ваше усмотрение.

$ find . -type f -name "*.ext" -print0 | xargs -0 -I {} echo cp -T {} {}SUB | sed -e 's/\.extSUB//g'

добавьте канал в sh, чтобы выйти из режима пробного прогона. Обратные кавычки бесполезны, поскольку они удаляют символы новой строки, если вы не имеете дело с $ IFS. Как уже упоминалось, есть и другие проблемы с символами, связанные с обратными кавычками. Также нужен cp -T, поскольку последний аргумент обычно ожидает каталог.

У меня недостаточно «rep», чтобы прокомментировать вышеизложенное, но вы можете использовать различные приемы с bash $ {} , чтобы избежать вилки basename .

Подстрока: $ {f: 0: -4} или самое длинное совпадение: $ {f %%. Ext}

1
27.01.2020, 23:25

Теги

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