LINUX.ORG.RU

Из списка файлов удалить записи, соответствующие симлинкам

 


1

1

Есть список файлов, некоторые из них - симлинки. Нужно симлинки из списка удалить. Пока накостылял следующее:

#!/bin/bash
for i in `cat cruft`
  do if [[ -n `file -b $i | grep symbolic` ]]
  then 
    echo "$i"
  fi
done
Вывод направляется в новый файл. Собственно, я уже нашёл, как потом из первого файла вычесть второй, но, думается мне, скрипт выше - адский костыль. Может, посоветуете что-нибудь более изящное?

★★

man bash

       -h file
              True if file exists and is a symbolic link.

cat input.file | xargs -L1 -I{} "[ -h {} ] || echo {}" | sh > output.file
sdio ★★★★★
()
Последнее исправление: sdio (всего исправлений: 1)
Ответ на: комментарий от sdio

Чудесно! Всё работает. Спасибо.

Valdor ★★
() автор топика
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.