Удаление файлов из списка на сервере без фактической синхронизации?

find -type f | egrep "[0-9]{3}\.txt$" | grep -v pure_

Программа findищет файлы, начинающиеся в вашем текущем каталоге.

egrepприменяет расширенные регулярные выражения, фильтруя три цифры, к которым добавляется ".txt" (точки должны быть экранированы, иначе "Atxt" тоже будет соответствовать )в конце строки.

grepотфильтровывает(-v)строк со строкой "чистый _" (Я не уверен, что место "чистого _" важно ).

0
18.11.2019, 22:44
2 ответа

У вас уже есть список файлов, так что самый простой способ,так как вы говорите, что есть только несколько сценариев, было бы перебрать тот же файл (, скажем file.list), и стереть их.

Что-то в этом роде:

for r in "$(cat ${LIST})"
do
  ssh "${HOST}" rm "${DST}/$r"
done
0
28.01.2020, 02:38
< "$LIST" ssh $HOST xargs -i% rm "$DST/%"

Использование одного сеанса ssh.

Предположим, что ваш список состоит из файлов и не содержит каталогов, удаление последних может быть обременительным.

РЕДАКТИРОВАТЬ :Чтобы объяснить это предыдущее замечание, учитывая, что вопрос не включает образец входного файла, нужно сделать предположения об этом.

Мой ответ должен справиться с этим, если входной файл выглядит примерно так:

script1.sh
script2.sh
script3.sh

Если ваш входной файл был таким:

script1.sh
script2.sh
somedir/

(У IE есть целый каталог для копирования ), тогда будет сложнее понять, что удалять в отношении somedir/(, нам придется перечислять somedir/локально и использовать эта информация для очистки ).

1
28.01.2020, 02:38

Теги

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