Как найти все ссылки в каталоге

На чтение 4 мин Просмотров 4.3к. Опубликовано 20.06.2021

Символьная ссылка, также известная как символическая ссылка или программная ссылка, — это тип файла, который может содержать местоположение файла или каталога в любой файловой системе Linux. Вы создали пару символических ссылок в файловой системе Linux. И иногда возникает необходимость перечислить все символические ссылки. Этот пост предоставляет вам пошаговое руководство о том, как составить список всех символических ссылок в файловой системе Linux или в конкретном каталоге Linux.

Из пары способов перечислить все символические ссылки в каталоге Linux, мы рассмотрим самый надежный и лучший способ, используя команду find.

Содержание

  1. Список всех символических ссылок с помощью команды поиска
  2. Синтаксис
  3. Примеры
  4. Список всех символических ссылок из всей файловой системы
  5. Список всех символических ссылок в текущем рабочем каталоге
  6. Список всех символических ссылок в любом каталоге
  7. Список всех символических ссылок в каталоге с помощью флага Maxdepth
  8. Заключение

Список всех символических ссылок с помощью команды поиска

Команда «Найти» пригодится при поиске любого типа файла или папки в операционной системе Linux.

Синтаксис

Чтобы найти символические ссылки в любой операционной системе Linux, используйте следующий синтаксис:

sudo find <path> -type l

В приведенной выше команде

<path> — это место или имя каталога, в котором вы хотите искать символическую ссылку,

-type ссылается на тип файла,

while l представляет тип файла ссылки.

Хорошо, давайте посмотрим на примеры и посмотрим, как мы можем получить список символических ссылок по-разному, рассмотрев пару примеров:

Примеры

Используя команду find, мы можем перечислить символические ссылки из всей файловой системы или в определенном каталоге. Давайте посмотрим на каждый пример:

Список всех символических ссылок из всей файловой системы

Чтобы вывести список всех символических ссылок из всей файловой системы, вы можете выполнить следующую команду поиска, указав «/» в качестве пути:

Чтобы вывести список всех символических ссылок из всей файловой системы

Символ «/» в приведенной выше команде представляет всю файловую систему, а команда find будет искать символические ссылки по всей системе и выводить их список в терминале.

Список всех символических ссылок в текущем рабочем каталоге

Точно так же, если вы хотите найти и перечислить все символические ссылки в текущем рабочем каталоге, просто укажите «.» как путь к команде поиска, как показано ниже:

В приведенной выше команде символ «.» сообщает команде find найти символические ссылки в текущем рабочем каталоге.

Список всех символических ссылок в любом каталоге

Чтобы перечислить все символические ссылки в любом каталоге, просто укажите путь к каталогу для команды find, как показано ниже:

sudo find /var/www/ -type l

Команда find будет искать символические ссылки только в каталоге / var / www / и перечислять все символические ссылки в этом каталоге.

Список всех символических ссылок в каталоге с помощью флага Maxdepth

Вы могли заметить, что все вышеперечисленные команды отображали символические ссылки в нужном каталоге. А также отображали все символические ссылки из подкаталогов.

Итак, что, если вы не хотите вдаваться в подробности? Вы просто хотите иметь символические ссылки в указанном каталоге. Решение этой проблемы не в ракетостроении, и мы можем быстро указать глубину, используя флаг maxdepth.

Например, чтобы установить глубину поиска на один уровень, команда find будет выглядеть так:

sudo find . -maxdepth 1 -type l

Вы можете увидеть результат, показанный на скриншоте выше. Команда find показала только символические ссылки текущего рабочего каталога вместо всех подкаталогов.

Заключение

В этом посте представлено несколько способов и дается краткое объяснение того, как перечислить все символические ссылки в файловой системе Linux или в конкретном каталоге Linux. Используя команду find, мы научились находить и перечислять все символические ссылки и устанавливать максимальный уровень глубины с помощью флага maxdepth. Если вы хотите узнать больше о команде find, не стесняйтесь читать справочную страницу find с помощью команды «man find».

Как найти все жесткие ссылки (hard link) в каталоге в LinuxУ меня есть файл с именем /etc/passwd i , и я хотел бы найти все жесткие ссылки на этот файл в каталоге. Как узнать все остальные жесткие ссылки в каталоге /etc/passwd in/backups/ ? Как найти все жесткие ссылки на данный файл с помощью командной строки Linux или Unix?

Вы можете использовать команду find  в Linux, Apple MacOS, FreeBSD и других операционных системах, чтобы узнать все жесткие ссылки.

Как найти все жесткие ссылки на предоставленный файл

Жесткая ссылка — это не что иное, как конкретное местоположение физических данных. Вы даете разные имена, относящиеся к одному и тому же файлу. Файл относится к тому же inode, что и имя. Жесткие ссылки на файл foo можно создать следующим образом:

$ ln foo bar
$ ln foo dir2/foobar

В приведенном выше примере bar и foobar являются другими именами файла foo. Lля поиска всех жестких ссылок для файла foo в текущем каталоге cинтаксис будет выглядеть следующим образом:

find /dir/to/search/ -samefile /path/to/file/name
## To find out all hard links to foo, use this command:
find / -samefile foo
find / -xdev -samefile foo

Примеры

Если есть файл с именем /etc/passwd  и вам нужно получить все жесткие ссылки на него, которые существуют в каталоге /backups/ , запустите:

$ find /backups/ -samefile /etc/passwd

Примеры возможных выводов данных:

/backups/hourly.0/etc/passwd
/backups/hourly.4/etc/passwd
/backups/hourly.3/etc/passwd
/backups/daily.0/etc/passwd
/backups/hourly.1/etc/passwd
/backups/hourly.2/etc/passwd

Если вы не хотите спускать каталоги на другие файловые системы, смонтированные однажды, попробуйте ввести:

$ find /backups/ -xdev -samefile /etc/passwd

Найдите и удаляйте все жесткие ссылки на файл с именем foo в /tmp/ директории

Введите следующую команду:

$ find /tmp/ -xdev -samefile foo -print0 | xargs -I {} -0 rm -v {}

Примеры возможных выводов данных:

removed '/tmp/dir2/foobar'
removed '/tmp/foo'
removed '/tmp/bar'

Справка, параметр -samefile не поддерживается моей командой find

Найдите номер файлов inode, для этого введите:

$ ls -li fileNameHere
$ ls -li /tmp/demo.txt

Примеры возможных выводов данных:

4065089 -rw-r--r-- 3 vivek vivek 8 Feb 26 02:19 /tmp/demo.txt

Первый столбец вышеприведенного вывода отображает индекс inode # 4065089 . Теперь альтернативный синтаксис выглядит следующим образом для поиска всех жестких ссылок (hard link) для файла с именем /tmp/demo.txt , используя inode # 4065089 :

$ find /tmp/ -inum 4065089
$ find /tmp/ -xdev -inum 4065089

Примеры возможных выводов данных:

/tmp/demo.txt
/tmp/dir2/file2.txt
/tmp/file1.txt

Чтобы найти и удалить все жесткие ссылки (hard link) на файл с номером inode # 4065089 , запустите:

$ find /tmp/ -xdev -inum 4065089 | xargs rm -v
$ find /tmp/ -xdev -inum 4065089 -print0 | xargs -I {} -0 rm -v {}

Вот пример моей сессии:

Как найти все жесткие ссылки (hard link) в каталоге в Linux

Рисунок 01: Как найти все жесткие ссылки (hard link) на заданное имя файла.

Перевод: Анна Давыдова
Источник: cyberciti.biz

Это интересно:

  • Установка и настройка Apache, PHP, MySQL, phpMyAdmin на Linux (LAMP)
  • Установка и настройка сервера Apache, PHP, MySQL, phpMyAdmin на Windows 10
  • Установка Adobe Photoshop CS6 на Linux (очень простой способ)


Is it possible to find all the pages and links on ANY given website? I’d like to enter a URL and produce a directory tree of all links from that site?

I’ve looked at HTTrack but that downloads the whole site and I simply need the directory tree.

Davidmh's user avatar

Davidmh

3,76718 silver badges35 bronze badges

asked Sep 17, 2009 at 14:43

Jonathan Lyon's user avatar

Jonathan LyonJonathan Lyon

3,8027 gold badges39 silver badges52 bronze badges

1

Check out linkchecker—it will crawl the site (while obeying robots.txt) and generate a report. From there, you can script up a solution for creating the directory tree.

gerzenstl's user avatar

answered Sep 17, 2009 at 14:51

Hank Gay's user avatar

10

If you have the developer console (JavaScript) in your browser, you can type this code in:

urls = document.querySelectorAll('a'); for (url in urls) console.log(urls[url].href);

Shortened:

n=$$('a');for(u in n)console.log(n[u].href)

answered Jan 5, 2015 at 22:03

ElectroBit's user avatar

ElectroBitElectroBit

1,14211 silver badges16 bronze badges

7

Another alternative might be

Array.from(document.querySelectorAll("a")).map(x => x.href)

With your $$( its even shorter

Array.from($$("a")).map(x => x.href)

answered Mar 1, 2020 at 19:00

Seb's user avatar

SebSeb

87812 silver badges20 bronze badges

1

If this is a programming question, then I would suggest you write your own regular expression to parse all the retrieved contents. Target tags are IMG and A for standard HTML. For JAVA,

final String openingTags = "(<a [^>]*href=['"]?|<img[^> ]* src=['"]?)";

this along with Pattern and Matcher classes should detect the beginning of the tags. Add LINK tag if you also want CSS.

However, it is not as easy as you may have intially thought. Many web pages are not well-formed. Extracting all the links programmatically that human being can “recognize” is really difficult if you need to take into account all the irregular expressions.

Good luck!

answered Sep 17, 2009 at 15:17

mizubasho's user avatar

mizubashomizubasho

911 silver badge7 bronze badges

1

function getalllinks($url) {
    $links = array();
    if ($fp = fopen($url, 'r')) {
        $content = '';
        while ($line = fread($fp, 1024)) {
            $content. = $line;
        }
    }
    $textLen = strlen($content);
    if ($textLen > 10) {
        $startPos = 0;
        $valid = true;
        while ($valid) {
            $spos = strpos($content, '<a ', $startPos);
            if ($spos < $startPos) $valid = false;
            $spos = strpos($content, 'href', $spos);
            $spos = strpos($content, '"', $spos) + 1;
            $epos = strpos($content, '"', $spos);
            $startPos = $epos;
            $link = substr($content, $spos, $epos - $spos);
            if (strpos($link, 'http://') !== false) $links[] = $link;
        }
    }
    return $links;
}

try this code….

Morgoth's user avatar

Morgoth

4,8558 gold badges39 silver badges66 bronze badges

answered Dec 3, 2014 at 7:42

user4318981's user avatar

3

Это будет рекурсивно проходить через каталог /path/to/folder и отображать только символические ссылки:

ls -lR /path/to/folder | grep ^l

Если вы намерены также следовать символическим ссылкам, вы должны использовать команду find, но вы должны включить опцию -L; на самом деле страница find говорит:

   -L     Follow symbolic links.  When find examines or prints information
          about files, the information used shall be taken from the  prop‐
          erties  of  the file to which the link points, not from the link
          itself (unless it is a broken symbolic link or find is unable to
          examine  the file to which the link points).  Use of this option
          implies -noleaf.  If you later use the -P option,  -noleaf  will
          still  be  in  effect.   If -L is in effect and find discovers a
          symbolic link to a subdirectory during its search, the subdirec‐
          tory pointed to by the symbolic link will be searched.

          When the -L option is in effect, the -type predicate will always
          match against the type of the file that a symbolic  link  points
          to rather than the link itself (unless the symbolic link is bro‐
          ken).  Using -L causes the -lname and -ilname predicates  always
          to return false.

Затем попробуйте следующее:

find -L /var/www/ -type l

Это, вероятно, будет работать: я нашел в man-странице find этот бриллиант: если вы используете параметр -type, вы должны изменить его на параметр -xtype:

          l      symbolic link; this is never true if the -L option or the
                 -follow option is in effect, unless the symbolic link  is
                 broken.  If you want to search for symbolic links when -L
                 is in effect, use -xtype.

Тогда:

find -L /var/www/ -xtype l

Как найти все жесткие ссылки в папке?

Вы можете получить меню GRUB, нажав клавишу Shift во время загрузки вашей системы.

задан
2 November 2017 в 17:13

поделиться

12 ответов

$ find -type f -links +1

Это покажет все обычные файлы с несколькими ссылками (именем). Он не скажет вам, какие имена связаны с одним и тем же файлом, для чего вы можете использовать -samefile или -inum, например. find -samefile “$somefile”

В техническом смысле все файлы (имена файлов) являются (жесткими) ссылками, просто в этом смысле интересны файлы с более чем одной ссылкой, указывающей на них. Но даже в тех случаях нет никакого способа сказать, что один из них является «правильным» файлом, а другой – ссылкой, ссылки равны.

В качестве примера:

$ touch a b c
$ ln b b2 ; ln c c2
$ find -type f -links +1
./c2
./b
./b2
./c
$ find -samefile b
./b
./b2

ответ дан ilkkachu
22 May 2018 в 16:52

поделиться

$ find -type f -links +1

Это покажет все обычные файлы с несколькими ссылками (именем). Он не скажет вам, какие имена связаны с одним и тем же файлом, для чего вы можете использовать -samefile или -inum, например. find -samefile “$somefile”

В техническом смысле все файлы (имена файлов) являются (жесткими) ссылками, просто в этом смысле интересны файлы с более чем одной ссылкой, указывающей на них. Но даже в тех случаях нет никакого способа сказать, что один из них является «правильным» файлом, а другой – ссылкой, ссылки равны.

В качестве примера:

$ touch a b c
$ ln b b2 ; ln c c2
$ find -type f -links +1
./c2
./b
./b2
./c
$ find -samefile b
./b
./b2

ответ дан ilkkachu
18 July 2018 в 04:03

поделиться

$ find -type f -links +1

Это покажет все обычные файлы с несколькими ссылками (именем). Он не скажет вам, какие имена связаны с одним и тем же файлом, для чего вы можете использовать -samefile или -inum, например. find -samefile “$somefile”

В техническом смысле все файлы (имена файлов) являются (жесткими) ссылками, просто в этом смысле интересны файлы с более чем одной ссылкой, указывающей на них. Но даже в тех случаях нет никакого способа сказать, что один из них является «правильным» файлом, а другой – ссылкой, ссылки равны.

В качестве примера:

$ touch a b c
$ ln b b2 ; ln c c2
$ find -type f -links +1
./c2
./b
./b2
./c
$ find -samefile b
./b
./b2

ответ дан ilkkachu
24 July 2018 в 17:59

поделиться

Поиск жестких ссылок

Ответы @ ilkkachu и @ barrycarter хорошие. Этот ответ является альтернативой, которая описывает некоторые результаты с более подробными сведениями.

Если связанное соответствие {match is} в том же дереве каталогов, вы найдете их напрямую. В противном случае вы можете искать во всей файловой системе из точки монтирования, но только в пределах той же файловой системы, использующей -xdev, что важно при поиске в корневом разделе /, и есть другие смонтированные разделы.

$ sudo find / -xdev -type f -links +1 -ls | sort -n > hard-links-in-root.txt

Ниже приведен пример, когда в текущем каталоге найдена одна жестко связанная пара, а два жестко связанных соответствия находятся в другом каталоге путем поиска из точки монтирования /media/multimed-2 данных раздел

$ sudo find . -xdev -type f -links +1 -ls | sort -n
  5242881    648 -rw-rw-r--   2 olle     nio        657936 jun 30  2015 ./like-this.png
  5242882    940 -rw-rw-r--   2 olle     nio        957688 jun 30  2015 ./from-here.png
 14843905   1620 -rw-r--r--   2 olle     nio       1652803 jun 30  2015 ./img_4810.jpg
 14843905   1620 -rw-r--r--   2 olle     nio       1652803 jun 30  2015 ./mid-sommer-night_4810.jpg

$ find /media/multimed-2/ -samefile ./like-this.png
/media/multimed-2/Photos/2015/06/30/like-this.png
/media/multimed-2/Bilder/kartor/like-this.png

$ find /media/multimed-2/ -samefile ./from-here.png
/media/multimed-2/Photos/2015/06/30/from-here.png
/media/multimed-2/Bilder/kartor/from-here.png

Другие причины, по которым используется различный объем дискового пространства

Если связанное {match / match} в том же дереве каталогов, вы будете найти их прямо.

Если связанное {match is / matches are} в том же дереве каталогов, вы найдете их напрямую.

В противном случае вы можете искать во всей файловой системе из точку монтирования, но только в пределах той же файловой системы, использующей -xdev, что важно при поиске корневого раздела / и других монтируемых разделов.

$ sudo find / -xdev -type f -links +1 -ls | sort -n > hard-links-in-root.txt

ответ дан sudodus
22 May 2018 в 16:52

поделиться

Теоретически жесткие ссылки должны быть неотличимы от обычных файлов (это своего рода точка). Если «x» является жесткой ссылкой на «y», тогда «y» также является жесткой ссылкой на «x». При этом второй столбец ls -l сообщает вам, сколько ссылок есть в данном файле. Если это число больше 1, файл имеет или имеет жесткую ссылку где-то. Возможно, это не работает для каталогов, но я не знаю, почему. Сначала я сказал, что каждый файл в каталоге имеет ссылку на этот каталог, но я был не прав: я нашел каталог с 10 файлами, чей «счетчик ссылок» был только 2.

Как только вы нашли трудный link, вы можете сделать ls -i, чтобы увидеть его inode, а затем использовать опцию inode find для поиска других файлов с тем же inode (тем самым делая их жесткими ссылками друг на друга). Обязательно ограничьте find определенным устройством, в противном случае вы можете получить ложные результаты.

Чтобы найти все жесткие ссылки сразу, find вытащить inodes для всех файлов на устройстве, а затем используйте такие вещи, как sort и uniq, чтобы найти дубликаты.

ответ дан barrycarter
22 May 2018 в 16:52

поделиться

Вы можете сделать что-то вроде этого:

find . -type t -ls | grep -v ” 1 username”

Это приведет к отображению файлов в текущем каталоге и выполнению на нем ls. Как сказал @barrycarter, жесткие ссылки неотличимы от реальных файлов, но в этом листинге они будут отображаться как имеющие более одной ссылки. Используя grep -v, вы отсеиваете файлы, имеющие только одну ссылку. (Команда username в команде grep должна сделать grep в нужном месте для единственного 1. Замените свое собственное имя пользователя.)

ответ дан Jos
22 May 2018 в 16:52

поделиться

Теоретически жесткие ссылки должны быть неотличимы от обычных файлов (это своего рода точка). Если «x» является жесткой ссылкой на «y», тогда «y» также является жесткой ссылкой на «x». При этом второй столбец ls -l сообщает вам, сколько ссылок есть в данном файле. Если это число больше 1, файл имеет или имеет жесткую ссылку где-то. Возможно, это не работает для каталогов, но я не знаю, почему. Сначала я сказал, что каждый файл в каталоге имеет ссылку на этот каталог, но я был не прав: я нашел каталог с 10 файлами, чей «счетчик ссылок» был только 2.

Как только вы нашли трудный link, вы можете сделать ls -i, чтобы увидеть его inode, а затем использовать опцию inode find для поиска других файлов с тем же inode (тем самым делая их жесткими ссылками друг на друга). Обязательно ограничьте find определенным устройством, в противном случае вы можете получить ложные результаты.

Чтобы найти все жесткие ссылки сразу, find вытащить inodes для всех файлов на устройстве, а затем используйте такие вещи, как sort и uniq, чтобы найти дубликаты.

ответ дан barrycarter
18 July 2018 в 04:03

поделиться

Вы можете сделать что-то вроде этого:

find . -type t -ls | grep -v ” 1 username”

Это приведет к отображению файлов в текущем каталоге и выполнению на нем ls. Как сказал @barrycarter, жесткие ссылки неотличимы от реальных файлов, но в этом листинге они будут отображаться как имеющие более одной ссылки. Используя grep -v, вы отсеиваете файлы, имеющие только одну ссылку. (Команда username в команде grep должна сделать grep в нужном месте для единственного 1. Замените свое собственное имя пользователя.)

ответ дан Jos
18 July 2018 в 04:03

поделиться

Поиск жестких ссылок

Ответы @ ilkkachu и @ barrycarter хорошие. Этот ответ является альтернативой, которая описывает некоторые результаты с более подробными сведениями.

Если связанное соответствие {match is} в том же дереве каталогов, вы найдете их напрямую. В противном случае вы можете искать во всей файловой системе из точки монтирования, но только в пределах той же файловой системы, использующей -xdev, что важно при поиске в корневом разделе /, и есть другие смонтированные разделы. $ sudo find / -xdev -type f -links +1 -ls | sort -n > hard-links-in-root.txt

Ниже приведен пример, когда в текущем каталоге найдена одна жестко связанная пара, а два жестко связанных соответствия находятся в другом каталоге путем поиска из точки монтирования /media/multimed-2 данных раздел

$ sudo find . -xdev -type f -links +1 -ls | sort -n
5242881 648 -rw-rw-r-- 2 olle nio 657936 jun 30 2015 ./like-this.png
5242882 940 -rw-rw-r-- 2 olle nio 957688 jun 30 2015 ./from-here.png
14843905 1620 -rw-r--r-- 2 olle nio 1652803 jun 30 2015 ./img_4810.jpg
14843905 1620 -rw-r--r-- 2 olle nio 1652803 jun 30 2015 ./mid-sommer-night_4810.jpg

$ find /media/multimed-2/ -samefile ./like-this.png
/media/multimed-2/Photos/2015/06/30/like-this.png
/media/multimed-2/Bilder/kartor/like-this.png

$ find /media/multimed-2/ -samefile ./from-here.png
/media/multimed-2/Photos/2015/06/30/from-here.png
/media/multimed-2/Bilder/kartor/from-here.png

Другие причины, по которым используется различный объем дискового пространства

Если связанное {match / match} в том же дереве каталогов, вы будете найти их прямо.

Если связанное {match is / matches are} в том же дереве каталогов, вы найдете их напрямую.

В противном случае вы можете искать во всей файловой системе из точку монтирования, но только в пределах той же файловой системы, использующей -xdev, что важно при поиске корневого раздела / и других монтируемых разделов. $ sudo find / -xdev -type f -links +1 -ls | sort -n > hard-links-in-root.txt

ответ дан sudodus
18 July 2018 в 04:03

поделиться

Теоретически жесткие ссылки должны быть неотличимы от обычных файлов (это своего рода точка). Если «x» является жесткой ссылкой на «y», тогда «y» также является жесткой ссылкой на «x». При этом второй столбец ls -l сообщает вам, сколько ссылок есть в данном файле. Если это число больше 1, файл имеет или имеет жесткую ссылку где-то. Возможно, это не работает для каталогов, но я не знаю, почему. Сначала я сказал, что каждый файл в каталоге имеет ссылку на этот каталог, но я был не прав: я нашел каталог с 10 файлами, чей «счетчик ссылок» был только 2.

Как только вы нашли трудный link, вы можете сделать ls -i, чтобы увидеть его inode, а затем использовать опцию inode find для поиска других файлов с тем же inode (тем самым делая их жесткими ссылками друг на друга). Обязательно ограничьте find определенным устройством, в противном случае вы можете получить ложные результаты.

Чтобы найти все жесткие ссылки сразу, find вытащить inodes для всех файлов на устройстве, а затем используйте такие вещи, как sort и uniq, чтобы найти дубликаты.

ответ дан barrycarter
24 July 2018 в 17:59

поделиться

Вы можете сделать что-то вроде этого:

find . -type t -ls | grep -v ” 1 username”

Это приведет к отображению файлов в текущем каталоге и выполнению на нем ls. Как сказал @barrycarter, жесткие ссылки неотличимы от реальных файлов, но в этом листинге они будут отображаться как имеющие более одной ссылки. Используя grep -v, вы отсеиваете файлы, имеющие только одну ссылку. (Команда username в команде grep должна сделать grep в нужном месте для единственного 1. Замените свое собственное имя пользователя.)

ответ дан Jos
24 July 2018 в 17:59

поделиться

Поиск жестких ссылок

Ответы @ ilkkachu и @ barrycarter хорошие. Этот ответ является альтернативой, которая описывает некоторые результаты с более подробными сведениями.

Если связанное соответствие {match is} в том же дереве каталогов, вы найдете их напрямую. В противном случае вы можете искать во всей файловой системе из точки монтирования, но только в пределах той же файловой системы, использующей -xdev, что важно при поиске в корневом разделе /, и есть другие смонтированные разделы. $ sudo find / -xdev -type f -links +1 -ls | sort -n > hard-links-in-root.txt

Ниже приведен пример, когда в текущем каталоге найдена одна жестко связанная пара, а два жестко связанных соответствия находятся в другом каталоге путем поиска из точки монтирования /media/multimed-2 данных раздел

$ sudo find . -xdev -type f -links +1 -ls | sort -n
5242881 648 -rw-rw-r-- 2 olle nio 657936 jun 30 2015 ./like-this.png
5242882 940 -rw-rw-r-- 2 olle nio 957688 jun 30 2015 ./from-here.png
14843905 1620 -rw-r--r-- 2 olle nio 1652803 jun 30 2015 ./img_4810.jpg
14843905 1620 -rw-r--r-- 2 olle nio 1652803 jun 30 2015 ./mid-sommer-night_4810.jpg

$ find /media/multimed-2/ -samefile ./like-this.png
/media/multimed-2/Photos/2015/06/30/like-this.png
/media/multimed-2/Bilder/kartor/like-this.png

$ find /media/multimed-2/ -samefile ./from-here.png
/media/multimed-2/Photos/2015/06/30/from-here.png
/media/multimed-2/Bilder/kartor/from-here.png

Другие причины, по которым используется различный объем дискового пространства

Если связанное {match / match} в том же дереве каталогов, вы будете найти их прямо.

Если связанное {match is / matches are} в том же дереве каталогов, вы найдете их напрямую.

В противном случае вы можете искать во всей файловой системе из точку монтирования, но только в пределах той же файловой системы, использующей -xdev, что важно при поиске корневого раздела / и других монтируемых разделов. $ sudo find / -xdev -type f -links +1 -ls | sort -n > hard-links-in-root.txt

ответ дан sudodus
24 July 2018 в 17:59

поделиться

Другие вопросы по тегам:

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

Добавить комментарий