LINUX.ORG.RU

Удаление файлов через один

 ,


0

1

Список find -type f -printf '%p\n' | sort -n
Это с сортировкой, ибо просто find выдает в перемешку.
Как удалить так, что бы оставить например каждый пятый файл неудаленным?

~/FOTO/22/001$ find -type f -printf '%p\n' | sort -k1 -n
./001.jpg
./002.jpg
./003.jpg
./004.jpg
./005.jpg
./006.jpg
./007.jpg
./008.jpg
./009.jpg
./010.jpg
./011.jpg
./012.jpg
./013.jpg
./014.jpg
./015.jpg
./016.jpg
./017.jpg
./018.jpg
./019.jpg
./020.jpg
./021.jpg
./022.jpg
./023.jpg
./024.jpg
./025.jpg
★★

ну сделай итерацию по списку и счётчик. как только счетчик становится N, выполняется удаление и счётчик обнуляется.

system-root ★★★★★
()
$ ...  | perl -nle 'print unless $. % 5' | ...
./005.jpg
./010.jpg
./015.jpg
./020.jpg
./025.jpg

А дальше кинуть на rm через xargs. Ток аккуратнее c именами, лучше потренироваться на ls перед rm.

anonymous
()
#!/bin/bash
r=0
for i in *.jpg; do
  if [[ ! $r == 4 ]]; then
    rm "$i"
    ((r++))
  else
    r=0
  fi
done
ashot ★★★★
()
Последнее исправление: ashot (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.