Я удалил файлы из каталога / boot моего Linux-бокса, и теперь он не загружается [дубликат]

Если вы ' для Linux или иным образом иметь доступ к инструментам GNU, вы можете сделать это:

last=-1; find . -type f -name '*.png' -printf '%f\0' | sort -nz | 
    while read -d '' i; do 
        s=$(stat -c '%s' "$i"); 
        [[ $s = $last ]] && rm "$i"; 
    last=$s; 
done

Объяснение

  • last = -1 : установите переменную $ last на -1 ].
  • находят. -type f -name '* .png' -printf '% f \ 0' : найти все файлы в текущем каталоге, имя которых заканчивается на .png и выведите их имя, за которым следует символ NULL .
  • sort -gz : сортировать \ 0 -разделенный ввод ( -z ) численно ( -n ). В результате получается отсортированный список имен файлов.
  • при чтении -d '' i; do : прочитать список имен файлов. -d '' устанавливает разделитель полей на \ 0 , который необходим для правильной обработки данных, разделенных NULL.
  • s = $ (stat -c '% s' "$ i"); : переменная $ s теперь содержит размер текущего файла ( $ i ).
  • [[$ s = $ last]] && rm "$ i"; : если размер текущего файла совпадает с размером последнего файла, удалите файл.
  • last = $ s : установить $ last равным текущему размеру файла. Теперь, если следующий файл имеет такой же размер, предыдущий шаг удалит его.

3
01.01.2015, 20:54
0 ответов

Теги

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