Вы также можете сделать это с помощью последовательности команд в одной строке -, если у вас есть mktemp
, tee
, sort
, grep
, xargs
и, конечно же, rm
доступны в вашей системе. Если у вас нет tac
, вы можете заменить его наsort -r
:
(temp_all=$(mktemp) && temp_last=$(mktemp) && { tac | tee $temp_all | sort -un > $temp_last ; } && grep -vf $temp_last $temp_all ; rm -f $temp_last $temp_all)
Вышеприведенный код предполагает полный список файлов в стандартном вводе (, он может быть получен любым способом, который вы считаете нужным, find
, ls
, файл и т. д. )и показывает список файлов удалить. Затем вы можете передать такой список вxargs rm
В разобранном виде:
(
temp_all=$(mktemp) && \
temp_last=$(mktemp) && \ # make a couple of temp files
{
tac | \ # reverse the list of files and...
tee $temp_all | \ # pipe it into one temp entirely and also...
sort -un > $temp_last ; \ # into a sort that makes names unique into the other temp
} && \
grep -vFf $temp_last $temp_all ; \ # use grep to filter out names
rm -f $temp_last $temp_all # remove temp files
)
Это может иметь дело с любым количеством входных имен, но требует, чтобы ни одно имя не содержало встроенных новых строк. Это кажется разумным для вашего случая.
Это ошибка, и они решают ее. В качестве обходного пути вы можете снять флажок «Подключиться к Red Hat Insights» и начать установку. Это работает. Ошибкаhttps://bugzilla.redhat.com/show_bug.cgi?id=1931069