Вопрос о работе ФС.
Модератор: Модераторы разделов
-
Samae1L
- Сообщения: 301
- ОС: Gentoo x86_64
Вопрос о работе ФС.
Когда я командую системе (неважно, как - через cp ли, через пункт меню в ФМ ли) скопировать файл из одного каталога в другой в пределах одного раздела, файл копируется по-настоящему или в целевом каталоге просто создаётся жёсткая ссылка? А при перемещении?
Извиняюсь, про копирование вопрос снят - файл, очевидно, копируется по-настоящему (хотя я не могу понять, зачем - достаточно ведь хардлинка). Но вопрос про перемещение остаётся в силе.
Извиняюсь, про копирование вопрос снят - файл, очевидно, копируется по-настоящему (хотя я не могу понять, зачем - достаточно ведь хардлинка). Но вопрос про перемещение остаётся в силе.
Всего лишь проекция ненужного маленького человечка, влачащая бессмысленное существование в Сети.
-
QWERTYASDF
- Сообщения: 989
- Статус: Чайник со свистком
- ОС: GNU/Linux
Re: Вопрос о работе ФС.
Я как бы совсем ламерша еще, но разве этот вопрос не решается банальными командами просмотра содержимого каталога, в которых указаны соответствующие свойства файлов?
-
alv
- Бывший модератор
- Сообщения: 7275
- Статус: Пенсионер в законе
- ОС: Cintu
Re: Вопрос о работе ФС.
Видите ли, система делает именно то, что Вы ей говорите. Она полагает, что если бы Вы хотели создать хардлинк, то дали бы команду
Код: Выделить всё
lnА при перемещении вообще ничего не копируется - просто файл приписывается к другому каталогу, и всё
Это описано во всех книжках про Юникс
QWERTYASDF писал(а): ↑28.06.2011 19:03разве этот вопрос не решается банальными командами просмотра содержимого каталога
Этот вопрос решается банальным чтением любой книжки про UNIX
-
Samae1L
- Сообщения: 301
- ОС: Gentoo x86_64
Re: Вопрос о работе ФС.
alv писал(а): ↑28.06.2011 19:06
Видите ли, система делает именно то, что Вы ей говорите. Она полагает, что если бы Вы хотели создать хардлинк, то дали бы командуКод: Выделить всё
ln
А при перемещении вообще ничего не копируется - просто файл приписывается к другому каталогу, и всё
Это описано во всех книжках про Юникс
Чудненько, спасибо.
В качестве лирического отступления: в пределах одного тома копирование вполне можно было бы заменить созданием хардлинка. Экономия времени и ресурсов многократная.
Всего лишь проекция ненужного маленького человечка, влачащая бессмысленное существование в Сети.
-
shotdownsystem
- Сообщения: 423
- ОС: Basic command interpreter
Re: Вопрос о работе ФС.
ага, сплю и вижу: сделал я копию исходного кода и начал было менять оригинал... ))
puts ("Working, please wait...");while(1);
-
alv
- Бывший модератор
- Сообщения: 7275
- Статус: Пенсионер в законе
- ОС: Cintu
Re: Вопрос о работе ФС.
Вы полагаете, что создатели первой файловой системы для Юникс были дураками?
Или они таки не зря придумали две разные команды?
-
Samae1L
- Сообщения: 301
- ОС: Gentoo x86_64
Re: Вопрос о работе ФС.
shotdownsystem писал(а): ↑28.06.2011 19:14
ага, сплю и вижу: сделал я копию исходного кода и начал было менять оригинал... ))
Дьявол! и чего это мне в голову сразу не пришло? придётся всё заново переделывать
Всего лишь проекция ненужного маленького человечка, влачащая бессмысленное существование в Сети.
-
alv
- Бывший модератор
- Сообщения: 7275
- Статус: Пенсионер в законе
- ОС: Cintu
Re: Вопрос о работе ФС.
shotdownsystem писал(а): ↑28.06.2011 19:14сделал я копию исходного кода и начал было менять оригинал
Не обязательно быстро - можно даже медленно и печально
-
shotdownsystem
- Сообщения: 423
- ОС: Basic command interpreter
Re: Вопрос о работе ФС.
alv писал(а): ↑28.06.2011 19:17shotdownsystem писал(а): ↑28.06.2011 19:14сделал я копию исходного кода и начал было менять оригинал
Не обязательно быстро - можно даже медленно и печально
"начал было", а не "начал быстро". оборот такой ))
а вот что действительно необязательно, так это делать копию, для этого есть гит свн и прочее )
puts ("Working, please wait...");while(1);
-
alv
- Бывший модератор
- Сообщения: 7275
- Статус: Пенсионер в законе
- ОС: Cintu
Re: Вопрос о работе ФС.
shotdownsystem писал(а): ↑28.06.2011 19:43а вот что действительно необязательно, так это делать копию, для этого есть гит свн и прочее )
не шутите с данными - эти шутки глупы и неприличны (с) Козьма Прутков-айтишник
Если, конечно, эти данные дороги хотя бы для Вас
-
Portnov
- Модератор
- Сообщения: 1786
- Статус: Матёрый линуксоид
- ОС: Debian testing/unstable
Re: Вопрос о работе ФС.
У команды cp есть опция -l, с которой оно вместо копирования делает хардлинки тогда, когда это возможно (при копировании обычных файлов в пределах одного раздела). Во всех остальных случаях оно копирует как обычно.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: Вопрос о работе ФС.
К сожалению, не во всех.
user@localhost
$ cp -l some-file /other/partition
cp: cannot create link `some-file': Invalid cross-device linkМои розовые очки
-
alv
- Бывший модератор
- Сообщения: 7275
- Статус: Пенсионер в законе
- ОС: Cintu
Re: Вопрос о работе ФС.
ага, у меня тот же результат получился
2 Portnov
Тем не менее, за напоминание опции - спасибо, я о ней напрочь забыл.
Хотя ситуаций, когда действительно требовался хардлинк, тоже припоминаю - пальцев руки пересчитать хватит. А уж для копирования данных они не нужны точно. Разве что большим любителям удалять файлы неподумавши.
-
enemysystems
- Сообщения: 28
- ОС: Arch Linux
Re: Вопрос о работе ФС.
Каталог - поименованная совокупность байтов на носителе информации, содержащая название подкаталогов и файлов.
Так вот, переименование и копирование не просто так выполняются одной и той же командой (mv) - это реально одно и тоже действие. Каталог - это, грубо говоря, таблица зависимости секторов и калстеров/блоков, по которым разложен файл, от человеческого адреса каждого файла. Переименование и перемещение - есть изменение адреса файла.
Ну а копирование - оно всегда копирование...
-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Вопрос о работе ФС.
enemysystems писал(а): ↑19.09.2011 21:41Каталог - это, грубо говоря, таблица зависимости секторов и калстеров/блоков, по которым разложен файл, от человеческого адреса каждого файла. Переименование и перемещение - есть изменение адреса файла.
нет.
каталог - таблица соответствия имя -> номер инода. А адреса данных хранятся в самих инодах.
т.е. при доступе по имени приходится:
1. получить из каталога номер нужного инода
1а. или нужного подкаталога, и далее рекурсивно.
2. получить адрес инода по его номеру.
3. получить адреса данных, которые хранятся в иноде
3а. в иноде также могут хранится адреса блоков с адресами данных или адреса блоков с адресами блоков, с адресами данных. А иногда сами данные.
Переименование в пределах одной ФС == изменение полного имени.
Переименование в разных ФС == копирование+удаление.
-
enemysystems
- Сообщения: 28
- ОС: Arch Linux
Re: Вопрос о работе ФС.
Про иноды не знал, thanx.
-
MrClon
- Сообщения: 838
- ОС: Ubuntu 10.04, Debian 7 и 6
Re: Вопрос о работе ФС.
В общем-то мысля топикстартера касательно копирования не лишена некоторого смысла, просто не всё так просто, copy on write (модная фича передовых ФС, например btrfs) делает нечто вроде того что описал автор (только более прозрачно и с разруливанием редактирования одной из копий).