LINUX.ORG.RU

ls -l жесткие ссылки на папку

 


1

1

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

drwxr-xr-x 42 www-data www-data  4096 Sep 20 20:19 modules
Что означает 42?

★★★★

Ответ на: комментарий от Kindly_Cat

Нет, папка с только что залитым друпалом.

invokercd ★★★★
() автор топика
Ответ на: комментарий от invokercd

Ну так если каталоги рекурсивно считать, как делает приведенная тобой строка, то конечно не совпадет.

Имеются в виду каталоги только первого подуровня.

unanimous ★★★★★
()
Ответ на: комментарий от invokercd

всё тебе правильно сказали
ты забыл про -{max,min}depth X

[ megabaks@desktop ] ~ $ ls -ld stuff
drwxr-xr-x 48 megabaks 1007 1376 сент. 17 04:21 stuff
[ megabaks@desktop ] ~ $find stuff -mindepth 1 -maxdepth 1 -type d | wc -l
46
[ megabaks@desktop ] ~ $ 
+'.' и '..'

megabaks ★★★★
()

Известно что на папку нельзя сделать жесткую ссылку

Зато на мамку можно, вендузяничек

anonymous
()
Ответ на: комментарий от unanimous

Нет, это точно не количество каталогов в каталоге. В каталоге /lib64/firmware у меня 21 каталог на первом уровне, а между тем:

ls -la /lib64 | grep firmware
drwxr-xr-x 1 root root     244 июня   3 00:30 firmware

Чёрт знает что такое.

Kindly_Cat
()
Ответ на: комментарий от Kindly_Cat

предположим, в каталоге 100 подкаталогов. Тогда у этого каталога

1. первое имя (скажем /x/y/z)

2. точка /x/y/z/.

3. ещё 100 имён, например /x/y/z/1/.. /x/y/z/2/.. и так далее

Итого 102 имени.

К примеру у меня в /usr 14 подкаталогов, и у него 16 имён. Жёсткая ссылка == другое имя файла.

drBatty ★★
()

Известно что на папку нельзя сделать жесткую ссылку

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

drBatty ★★
()
Ответ на: комментарий от drBatty

Тогда у каталога /lib64/firmware должно быть 23 имени. А у него одно. Я даже больше скажу: у каталога /lib64 тоже одно имя:

ls -la / | grep lib64
lrwxrwxrwx   1 root root    5 мая   25 23:40 lib -> lib64
drwxr-xr-x   1 root root 4628 сент. 19 18:30 lib64

wtf?

Kindly_Cat
()
Ответ на: комментарий от Kindly_Cat

Я даже больше скажу: у каталога /lib64 тоже одно имя

значит это не каталог.

вот например смонтированный sshfs-fuse каталог имеет только одно имя, и все подкаталоги в нём - тоже. Очевидно потому, что sshfs не умеет хардлинки(?).

drBatty ★★
()
Ответ на: комментарий от Kindly_Cat

А что это?

я откуда знаю? у меня:

drwxr-xr-x   7 root root 4,0K сент. 11 02:11 lib/
drwxr-xr-x   2 root root  12K сент. 20 15:57 lib64/

hint mount без параметров посмотри.

drBatty ★★
()

Означает бессмысленность твоих действий.

anonymous
()
Ответ на: комментарий от Kindly_Cat

у обычного каталога имеется ровно N+2 хрдлинка, где N - число подкаталогов. ну раз ты не хочешь показать mount, покажи хоть stat /lib64

drBatty ★★
()
Ответ на: комментарий от drBatty
stat /lib64
  Файл: «/lib64»
  Размер: 4628          Блоков: 0          Блок В/В: 4096   каталог
Устройство: 11h/17d     Inode: 32811       Ссылки: 1
Доступ: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Доступ: 2012-09-05 12:43:52.000000000 +0000
Модифицирован: 2012-09-19 18:30:28.102999992 +0000
Изменён: 2012-09-19 18:30:28.102999992 +0000
 Создан: -
mount
rootfs on / type rootfs (rw)
/dev/root on / type btrfs (rw,noatime,compress=lzo,ssd,discard,nospace_cache)
devtmpfs on /dev type devtmpfs (rw,relatime,size=4075288k,nr_inodes=1018822,mode=755)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
tmpfs on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,relatime)
configfs on /sys/kernel/config type configfs (rw,nosuid,nodev,noexec,relatime)
cgroup_root on /sys/fs/cgroup type tmpfs (rw,nosuid,nodev,noexec,relatime,size=10240k,mode=755)
openrc on /sys/fs/cgroup/openrc type cgroup (rw,nosuid,nodev,noexec,relatime,release_agent=/lib64/rc/sh/cgroup-release-agent.sh,name=openrc)
cpuset on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cpu on /sys/fs/cgroup/cpu type cgroup (rw,nosuid,nodev,noexec,relatime,cpu)
cpuacct on /sys/fs/cgroup/cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct)
memory on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
devices on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
freezer on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
blkio on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
perf_event on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
net_prio on /sys/fs/cgroup/net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_prio)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620)
shm on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime)
/dev/sda1 on /boot type ext4 (rw,noatime,commit=0)
/dev/sda3 on /home type btrfs (rw,noatime,discard,ssd)
/dev/sdc1 on /media/home type ext4 (rw,noatime,nodiratime,commit=0)
tmpfs on /tmp type tmpfs (rw,size=500M,mode=1777)
tmpfs on /var/log type tmpfs (rw,size=500M,mode=1777)
tmpfs on /var/lock type tmpfs (rw,size=500M,mode=1777)
tmpfs on /var/tmp type tmpfs (rw,size=6G,mode=1777)
tmpfs on /var/run type tmpfs (rw,size=500M,mode=1777)
/dev/sdd1 on /media/video type xfs (rw,noatime,nodiratime)
/dev/sdb2 on /media/windows type fuseblk (rw,nosuid,nodev,noexec,allow_other,blksize=4096)
/dev/sdb7 on /media/vm type xfs (rw,noatime,nodiratime)
/dev/sda4 on /zero type btrfs (rw,noatime,compress=lzo,discard,ssd)
/dev/sda2 on /zero/source/portage type reiserfs (rw,noatime,nodiratime)
/dev/sdb5 on /zero/source/code type ext2 (rw,noatime)
none on /sys/fs/fuse/connections type fusectl (rw)
Kindly_Cat
()
Ответ на: комментарий от Kindly_Cat

Тебя так напугала единица в каком-то столбике? Тогда лучше не пробуй.

ну лично меня это не пугает. А вот как поведут себя мои скрипты... Я догадываюсь как - как на каком-нибудь FATе, который ничего не может и не умеет. Даже показать число имён файла.

drBatty ★★
()
Ответ на: комментарий от unanimous

.. это ведь линк на родительский каталог. т.е, как мне кажется, это число подкаталогов + . + имя самого файла каталога (у любого файла с 0 ссылок оно =1) а корень походу исключение и ссылает .. на себя; а может я и не прав.
как кстати посмотреть список всех имён файла, я забыл?

teod0r ★★★★★
()
Ответ на: комментарий от teod0r

.. это ведь линк на родительский каталог. т.е, как мне кажется, это число подкаталогов + . + имя самого файла каталога (у любого файла с 0 ссылок оно =1) а корень походу исключение и ссылает .. на себя; а может я и не прав.

надо запомнить одну простую вещь: хардлинк == одно из имён файла, это НЕ ссылка. Точнее имя - это всегда ссылка, и таких ссылок-имён может быть сколько угодно (в т.ч. 0).

что касается корня, то с ним всё в порядке. У него тоже есть имя .., оно принадлежит ему-же. Т.е. корень исключением НЕ является.

как кстати посмотреть список всех имён файла, я забыл?

никак. Можно выполнить ls -i file, узнать inum (номер inode), а потом искать в этой файловой системе все хардлинки этого файла по заданному inode. При этом надо учитывать, что файл может и отсутствовать в файловой системе, но при этом существовать. Например попробуй

# cd /tmp
# mkdir x
# cd x
# ls -la .
итого 24
drwxr-xr-x 2 root root  4096 сент. 22 09:03 ./
drwxrwxrwt 7 root root 20480 сент. 22 09:03 ../
# rm -rvf ../x
удален каталог: «../x»
# ls -la .
итого 0
# ls ../x
/bin/ls: невозможно получить доступ к ../x: Нет такого файла или каталога
сейчас мы в каталоге, которого НЕТ.

drBatty ★★
()
Ответ на: Переведи от invokercd

"папка" != "каталог"

Переведи

Термин «папка(folder)» означает несколько иную сущность, нежели термин «каталог(aka директория)». IRL это тоже так. Например папка весит ровно столько, сколько весит сама + её содержимое. Каталог имеет свой вес, и он не зависит от веса содержимого. Есть ещё множество других отличий.

drBatty ★★
()
Ответ на: комментарий от drBatty

надо запомнить одну простую вещь: хардлинк == одно из имён файла, это НЕ ссылка. Точнее имя - это всегда ссылка, и таких ссылок-имён может быть сколько угодно (в т.ч. 0).

есть понятие жёсткая ссылка, есть понятие символьная ссылка. это понятие неверно? я вообще под фразой "(у любого файла с 0 ссылок оно =1)" имел ввиду что у файла 1 имя. какая разница как называть вещи, если суть от этого не меняется?

(в т.ч. 0).

не встречал такого

сейчас мы в каталоге, которого НЕТ.

и всё равно я не понял, что ты хотел этим сказать? я всегда думал: у файла нет inode=у файла 0 имён=файла не существует. а если ты хотел что-то объяснить про какой-то несуществующий файл, то я тебя не понял т.к объяснение не толковое, с таким же успехом можно сделать cd на хард, потом выдернуть его шлейф и сказать: смотрите, мы сейчас находиимся на диске, которого в системе вообще не существует, а то что отображает ФМ или терминал - это просто остаточная запись в кэшэ.

вообще речь была о том, что .. это линк(имя файла если хотите) не на текущий каталог, а на родительский, поетому вычислять сумму линков(имён) каталога, суммируя . + .. + кол-во подкаталогов - неправильно и может сбить с толку новичка, не сильно посвещённого в это дело.

teod0r ★★★★★
()
Ответ на: комментарий от teod0r

есть понятие жёсткая ссылка, есть понятие символьная ссылка. это понятие неверно?

символьная ссылка, это ссылка на ИМЯ другого файла. Следует понимать, что само ИМЯ файла, это НЕ ФАЙЛ. Регулярный файл в EXT2,3,4 это определённая область данных на диске, которая называется inode, все иноды создаются при форматировании, занимают фиксированный размер (сейчас 512 байт), и пронумерованы целыми числами. В инодах лежат временные метки, UNIX права, и для регулярных файлов ещё и расположение собственно данных. Имени файла там НЕТ.

Имена фалов лежат в каталогах, в которых также определено соответствие имени файла, и номера инода этого файла. Потому у одного инода может быть любое число имён.

имел ввиду что у файла 1 имя. какая разница как называть вещи, если суть от этого не меняется?

Суть как раз в том, что имя файла никак не связано с файлом, кроме как каталог, в котором данное имя и хранится.

у файла нет inode=у файла 0 имён=файла не существует.

фраза «у файла нет inode» не имеет смысла. inode это и есть файл.

то я тебя не понял т.к объяснение не толковое, с таким же успехом можно сделать cd на хард, потом выдернуть его шлейф и сказать

всё не так. Удаляя файл, ты удаляешь только его ИМЯ. Сам файл НЕ удаляется. Его удаляет ОС автоматически, тогда, и только тогда, когда у него будет ноль имён, и когда его никто не будет использовать. В моём примере я удалил все два имени файла, и тем не менее, я его ещё использую (это мой текущий каталог). Если я перестану его использовать, то он будет уничтожен.

вообще речь была о том, что .. это линк(имя файла если хотите) не на текущий каталог, а на родительский, поетому вычислять сумму линков(имён) каталога, суммируя . + .. + кол-во подкаталогов - неправильно

правильно. У каждого подкаталога (включая корневой) есть родитель. А значит, у каждого каталога есть имя .. в каждом подкаталоге. Ну ещё есть имя . и его обычное имя. Всё верно.

и может сбить с толку новичка, не сильно посвещённого в это дело.

я и говорю, что каталоги это не папки, ну сколько можно повторять-то? Ты знаешь, что значит КАТАЛОГ? Подумай над смыслом этого слова IRL, и тебе всё станет кристально ясно.

ЗЫЖ мне тоже было непонятно и рвало шаблон то, что в папке лежит она сама да ещё и та папка, в которой лежит эта папка. Ну не бред-ли? Бред. Потому называть каталог «папкой» неправильно.

drBatty ★★
()
Ответ на: комментарий от drBatty

Известно что на папку нельзя сделать жесткую ссылку

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

Там, как раз, хардлинк (точнее, его эмуляция — junction) на каталог возможен :D

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Там, как раз, хардлинк (точнее, его эмуляция — junction) на каталог возможен

а у нас за то есть mount --bind

Так то.

И да, в этом вашем маздае хард/сим линки никто не юзает. Я во всяком случае не вижу. Только на словах. Почему?

drBatty ★★
()
Ответ на: комментарий от drBatty

И да, в этом вашем маздае хард/сим линки никто не юзает. Я во всяком случае не вижу. Только на словах. Почему?

Как?? Ты не видел C:\Documents and Settings (симлинк на C:\Users) или C:\Users\All users на C:\ProgramData? :) Начиная с Vista даже в системе симлинки на каждом шагу. А я — так и 10 лет назад пользовался вовсю. Alt-F6 в FAR Manager, если что :)

Хардлинки тоже используются, только их заметить сложнее.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73
$ find -type l
./Documents and Settings
./Program Files/Windows NT/Стандартные
./ProgramData/Start Menu
./ProgramData/Application Data
./ProgramData/Desktop
./ProgramData/Documents
./ProgramData/Templates
./ProgramData/Главное меню
./ProgramData/Документы
./ProgramData/Избранное
./ProgramData/Рабочий стол
./ProgramData/Шаблоны
./ProgramData/Favorites
./ProgramData/Microsoft/Windows/Start Menu/Программы
./Users/All Users
./Users/Balancer/AppData/Local/Application Data
./Users/Balancer/AppData/Local/History
./Users/Balancer/AppData/Local/Temporary Internet Files
./Users/Balancer/AppData/Roaming/Microsoft/Windows/Start Menu/Программы
./Users/Balancer/Application Data
./Users/Balancer/Cookies
./Users/Balancer/Documents/Мои видеозаписи
./Users/Balancer/Documents/Мои рисунки
./Users/Balancer/Documents/Моя музыка
./Users/Balancer/Local Settings
./Users/Balancer/NetHood
./Users/Balancer/PrintHood
./Users/Balancer/Recent
./Users/Balancer/SendTo
./Users/Balancer/Главное меню
./Users/Balancer/Мои документы
./Users/Balancer/Шаблоны
./Users/Default/AppData/Local/Application Data
...
...
...
...

./Users/UpdatusUser/NetHood
./Users/Все пользователи
KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Как?? Ты не видел C:\Documents and Settings (симлинк на C:\Users) или C:\Users\All users на C:\ProgramData? :) Начиная с Vista даже в системе симлинки на каждом шагу.

как интересно у вас... В хп были только ярлыки.

А я — так и 10 лет назад пользовался вовсю. Alt-F6 в FAR Manager, если что :)

кто-бы сомневался: пользователи симлинков в маздае на моём ЛОРе... А где-же ещё?

Хардлинки тоже используются, только их заметить сложнее.

не сомневаюсь. Но ты хоть один нашёл?

drBatty ★★
()
Ответ на: комментарий от KRoN73

как-то всё через зад. ИМХО. Это они под FHS косят, или хотят опять POSIX-совместимости добиться? Или просто яйца лижут?

drBatty ★★
()
Ответ на: комментарий от teod0r

разве оно не задаётся при создании фс?

для ext задаётся. mke2fs -I, а по дефолту /etc/mke2fs.conf

И да, я ошибся, там для EXT4 256.

drBatty ★★
()
Ответ на: комментарий от drBatty

как интересно у вас... В хп были только ярлыки.

создавал симлинк в XP когда проге на c:\ не было места больше, а переносить (инсталлировать) было лень и муторно.

uspen ★★★★★
()
Ответ на: комментарий от drBatty

В хп были только ярлыки.

Это система 11-летней давности :)

не сомневаюсь. Но ты хоть один нашёл?

Придумай, как найти — найду. В смысле — сейчас. А в практике своей — видел. И свои использовал.

KRoN73 ★★★★★
()
Ответ на: комментарий от drBatty

как-то всё через зад. ИМХО. Это они под FHS косят, или хотят опять POSIX-совместимости добиться? Или просто яйца лижут?

Без понятия. Но линки на NTFS ещё в прошлом веке были.

KRoN73 ★★★★★
()
Ответ на: комментарий от uspen

как интересно у вас... В хп были только ярлыки.

создавал симлинк в XP когда проге

Я так понял, что это было в контексте самой системы. В XP симлинки на системном уровне не применялись, всё по каталогам фиксированным стояло.

А про симлинки в личном использовании — я выше писал. Alt-F6 в FAR'е появилось очень, очень, очень давно :)

KRoN73 ★★★★★
()
Ответ на: комментарий от uspen

Если в XP, то это был не симлинк, а junction point. Он появился еще в Win2K и работает только в пределах локальной машины.
Настоящие симлинки появились только в висте.

bigbit ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.