используйте команду find для удаления всех файлов, кроме последнего, в подкаталогах

Файл конфигурации для сохранения: ~/.config/plasma-org.kde.plasma.desktop-appletsrc. Вы можете сохранить несколько версий этого файла в другом месте, а затем скопировать его обратно. Вам нужно будет перезапустить Plasma после замены файла. Я использую следующий скрипт, который пытается убить плазму все более жестокими способами.

#!/usr/bin/env bash
# Replace current instance of plasmashell

kbuildsycoca5
timeout 5 kquitapp5 plasmashell
pgrep -U $USER -x plasmashell &>/dev/null && pkill -U $USER -x plasmashell
pgrep -U $USER -x plasmashell &>/dev/null && pkill -U $USER -x -9 plasmashell
pgrep -U $USER -x plasmashell &>/dev/null && echo "ERROR: cannot kill plasmashell"
plasmashell &

Также обратите внимание, что для обновления файла конфигурации Plasma требуется около минуты, поэтому, возможно, сохраните копию файла, внесите изменения, а затем diffдве конфигурации, пока не увидите записанное изменение.

Кроме того, я считаю, что Plasma немного глючит при работе с несколькими мониторами. Иногда это сбивается, и монитор возвращается к настройкам по умолчанию. По сути, вы можете просто настроить его снова и сохранить новую конфигурацию. Затем у вас будут дубликаты макетов для двух вариантов одного и того же монитора, но это работает нормально. (Если вы проверите файл конфигурации, он будет, например. lastScreen=4, а другой lastScreen=5. Понятия не имею почему.)

1
30.09.2019, 11:00
1 ответ

В каталоге вы можете найти «стебли» с:

ls * | sed -r 's/[0-9]+$//' | sort | uniq

Для каждого стебля вы можете перечислить все файлы с последним с помощью:

ls  FILE_1-* | head -n -1

Или, если вы хотите сохранить самые последние:

ls -rt FILE_1-* | head -n -1

Обе команды могут сопровождаться | xargs rmдля удаления их вывода

Поместите все это в короткий скрипт (*)и запустите:

find. -type d -exec {the_script} {} \;

(*)короткий сценарий будет выглядеть так:

#! /bin/bash
cd "$1"  # takes the directory as a parameter
for stem in $(ls FILE* | sed -r 's/[0-9]+$//' | sort | uniq)
do 
    ls -rt ${stem}* | head -n -1 | xargs echo rm 
done

Конечно, тщательно проверьте и замените echo rmтолько на rm, если вы уверены, что это удалит нужные файлы.

1
28.04.2021, 23:29

Теги

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