blob: 404e9a9503731d12aae81511bcf71ff8eeffd027 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
В общем-то, задача довольно примитивная, но и пост получится не гигантский. Посмотрим на несколько команд, которые помогут более эффективно расправляться с ссылками.
Обычно мы как проверяем ссылку - выполняем "ls -l" и смотрим на тип:
`$ ls -l
`lrwxrwxrwx ... sftp-server -> openssh/sftp-server
Если будем работать через find, руками тип смотреть не придется. Для фильтрации по символьным ссылкам у нас есть опция "-type l":
`$ find /usr/lib -type l
`/usr/lib/gvfs/gvfsd-afp
`/usr/lib/libmultipath.so
Если мы переживаем, что удалим что-то лишнее, можем проверить путь к файлу, на который указывает ссылка. Для этого нужно для вывода команды выполнить "-exec ls -l {} \":
`$ find /usr/lib -type l -exec ls -l {} \;
`/usr/lib/gvfs/gvfsd-afp -> ../../libexec/gvfsd-afp
`/usr/lib/libmultipath.so -> libmultipath.so.0
Напоследок разберемся с поиском и удалением битых ссылок, которые никуда не ведут. Для такой цели подойдет параметр "-xtype l":
`$ find ~/broken_links/ -xtype l
|