Как определить, указывает ли символическая ссылка linux на каталог или файл

У меня есть каталог, в котором есть символические ссылки - некоторые из них указывают на файлы, а некоторые - на каталоги - как определить те, которые ссылаются на каталог в сценарии оболочки (без ущерба для разницы имен)

1 ответ

Решение

Используйте опцию ls -L для перехода по символическим ссылкам

Это сценарий, который я использовал, чтобы отличать каталоги с содержимым от файлов / пустых каталогов (это будет работать только в том случае, если в каталоге есть какое-то содержимое - в моем случае мне все равно интересны те каталоги, в которых есть какое-то содержимое, поэтому я счастлив - но предложить лучшие варианты, если таковые имеются

cd dir
for i in `ls `
do
      if [ 1 -lt   `ls -l -L $i  | wc -l`  ]
      then
              echo "$i is a non empty directory" 
      else
              echo "$i is either an empty directory or a  file"
      fi
done
Другие вопросы по тегам