Как определить, указывает ли символическая ссылка 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