Как определить, является ли цель гибкой ссылки каталогом или файлом?

sudo используется для временного возрастания полномочий пользователя базироваться уровень, тогда как su root используется для создания новой оболочки с корнем как пользователь;

2
24.01.2015, 01:08
3 ответа

Согласно таблице маршрутизации, включенной в вопрос, отсутствует маршрут по умолчанию, указывающий на ppp0 , поэтому удалить его невозможно. («Нет такого процесса» здесь означает «Нет такого маршрута»).

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.144.15.100   128.0.0.0       UG    1      0        0 ppp0
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0

Это маршрут к 0,0,0,0/1 (НЕ маршрут по умолчанию, маршрут по умолчанию 0,0,0,0/0), указывающий на 10,144,15,100, который использует ppp0 , плюс маршрут по умолчанию, указывающий на 192,168,1,1, который выходит eth0 .

По пути в Linux вместо ifconfig , route и других следует использовать команду ip . Синтаксис и форматы вывода, используемые ip , гораздо более интуитивны и просты в понимании и использовании.

Необходимо просмотреть два указанных выше маршрута (и все остальные) с ip route и удалить их с помощью, соответственно:

ip route del 0.0.0.0/1 via 10.144.15.100
ip route del default via 192.168.1.1
-121--58625-

Я думаю, что вы хотите:

ls -l filename

человек ваш друг:

man ls
-121--128890-

Можно использовать параметр -F для получения:

   -F, --classify
          append indicator (one of */=>@|) to entries

То есть:

# ln -s videos Videos
# ls -l
lrwxrwxrwx. 1 guido guido    6 Jan 23 14:11 videos -> Videos
# ls -lF
lrwxrwxrwx. 1 guido guido    6 Jan 23 14:11 videos -> Videos/

В любом случае, я бы посоветовал вам создать symlinks к каталогам, как это:

# ln -s Videos/ videos

в этом случае вы получите завершающую косую черту даже без опции классификации.

3
27.01.2020, 22:00

Вывод ll, который, я полагаю, является псевдонимом оболочки для ls -l, не содержит этой информации в режиме/разрешениях сим-ссылки. В Linux (symlink(2)):

 Разрешения символической ссылки не имеют значения; владельцем является
 игнорируется при переходе по ссылке, но проверяется при удалении или переименовании-
 ссылка запрашивается, и ссылка находится в каталоге с
 установлен липкий бит (S_ISVTX).

В дополнение к ls, предложенным в другом месте, есть некоторые методы, которые менее многословны и поддаются сценарию.

file поддерживает -L, что заставляет его следовать (разыменовывать) симлинкам:

$ file /usr/local/bin/xzcat
/usr/local/bin/xzcat: symbolic link to `xz'

$ file -L /usr/local/bin/xzcat
/usr/local/bin/xzcat: ELF 32-bit LSB executable, [...]

$ file  /var/adm
/var/adm: symbolic link to `log'

$ file -L /var/adm   
/var/adm: directory

Опция -L не является POSIX, а должна работать на любом современном Linux и *BSD. Она будет работать с несколькими симлинками (чего не делает ls). Для более надежного использования он также поддерживает различные форматы вывода, например file -L -b --mime-type /var/adm, и -0 для имен файлов с нулевым разделением.

GNU stat еще проще:

$ stat -c %F /var/adm
symbolic link

$ stat -L -c %F /var/adm
directory

Вариант -L работает так же, как и для файла , вариант -c %F инструктирует stat выводить только тип файла, подробнее см. страницу руководства stat(1). *BSD stat не совсем то же самое, что GNU stat, строки формата отличаются, вместо этого используйте -f %HT.

1
27.01.2020, 22:00

Я думаю, То, что вы хотите:

ls -l filename

человек - ваш друг:

man ls
0
27.01.2020, 22:00

Теги

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