LINUX.ORG.RU

тебе не доверяют уничтожение данных

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

Примерно так. Для иллюстрации того, что в *nix все можно сделать различными методами. Но mv пытается удалить файл назначения, если он существует.

cvs-255 ★★★★★
() автор топика

Смонтировать ramfs, mv файл туда, размонтировать ramfs. Если файл большой, то сначала split его на куски и по очереди отправлять все в ramfs.

PolarFox ★★★★★
()

Ты издеваешься или всерьёз?

В /dev/null направляются потоки вывода и ошибок, а не файлы.

А твоя команда пытается переместить файл file в каталог /dev и заменить им файл устройства null. Понимаешь, почему тебе это запрещено? :)

OldFatMan
()
Ответ на: комментарий от cvs-255

Это уже извращения какие-то…

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

Что mv так пытается делать, я уже заметил. Но ведь казалось бы для перемещения надо

FILE *fi, *fo;

fi=fopen(from, «rb»); fo=fopen(to, «wb»);

читаем-пишем

fclose(fi) fclose(fo)

удаляем источник.

Где тут удаление файла назначения - я не вижу

cvs-255 ★★★★★
() автор топика

/dev/null не предназначен для удаления файлов.

tailgunner ★★★★★
()
Ответ на: комментарий от cvs-255

Это называется cat, а не mv. Если бы каждый раз данные сначала копировались, а потом удалялся оригинал, mv занимал бы кучу времени.

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

create text file for writing.

если файл не существует, его создают. Если уже есть, то простообнуляют длину.

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

Да не в ключе, тролль ты этакий! :)))

В исходнике mv есть системный вызов unlink - вот чего спрашиваю?!!

OldFatMan
()
Ответ на: комментарий от cvs-255

Это же не простой файл, это устройство.

В общем, здесь тебе уже несколько раз верно сказали: неправильно ты /dev/null используешь.

PS: Я сейчас не готов теоретическую базу под «неправильность использования /dev/null» подвести. Либо тебе кто-нибудь обоснует это, либо у меня время появится. :)

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

неправильно ты /dev/null используешь.

А разве не в этом всегда заключался один из столбов *nix, что ты используешь программы как хочешь, а не как автору угодно?

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

Программы используй, как тебе угодно.

Но ты лезешь напрямую (грязными руками) в системное устройство (/dev/null). Это уже не уровень обычного пользователя.

Самое простое объяснение: /dev/null служит для направления в него потоков вывода и ошибок, а не для ковыряния в нём чем попало. Подробности - позже. :)

OldFatMan
()
Ответ на: комментарий от cvs-255

Вдогонку

Странное у тебя какое-то понимание «использования программ как хочешь». А на устройстве своего ЖД поковыряться таким же образом не желаешь? А мы понаблюдаем за сим процессом. ;)

OldFatMan
()

А если бы у тебя был ЪTrueЪ old unix, ты бы смог стереть эту запись в директории как-то так:

 cat /dev/null > . 

Enjoy your progress!

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

Имел дело с Ъ-old-unix-ами, но в процитированной команде не уверен, не припомню, чтоб такое проходило.

А обнулять файлы /dev/null и по сей день прекрасно умеет. :)

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

Там тааакооой исходник, что без ста грамм не разберёшься. unlink там таки есть, он вызывается, если destination уже существует.

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

Имел дело с Ъ-old-unix-ами, но в процитированной команде не уверен, не припомню, чтоб такое проходило.

Ну где-то я точно видел, что cat на директории показывал ее содержимое, может быть с мусором :) мб это был minix или что-то из древних BSD, не уверен

AptGet ★★★
()
Ответ на: комментарий от cvs-255

Почти любой каприз за ваши деньги

А рожа не треснет? :)))

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

unlink там таки есть, он вызывается, если destination уже существует.

Воооооооот! То есть ТС пытается удалить /dev/null, а его вполне справедливо посылают нахлесом. И он же ещё и удивляется: «почему?» :)

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

Я тоже не уверен, но почему-то мне думается, что и на старых Ъ-юниксах команда кота из дев-нулла в текущий каталог не пройдёт.

OldFatMan
()

Тайна похереного /dev/null на нескольких серверах раскрыта: оказывается так клиенты пытались следы замести.

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

Да даже если не лезть в дебри исходников, типы файлов-то разные - тут regular file, а там character special file, и одно в другое просто так не перенесёшь, надо удалять старое. А чтобы удалить старое, должны быть права на создание/удаление файлов в /dev, не знаю, как у ТСа, а у меня там права 755, и принадлежит это батьке, поэтому простому юзеру не дадут там беспредельничать. От рута перемещается на ура.

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

Я тоже не уверен, но почему-то мне думается, что и на старых Ъ-юниксах команда кота из дев-нулла в текущий каталог не пройдёт.

Попробовал так сделать в 8й солярке, из нее и пишу:) cat directory вполне работает, но записать в директорию не получается, таки да

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

В общем - да: в исходники лезть здесь и не требуется. Здесь просто прав не хватает ТСу (как обычному юзеру), что и было показано в ОП:

невозможно удалить назначение: Отказано в доступе

Но с другой стороны, он сам начал 4.2шничать, что в mv вообще никакого удаления нет. И наврал. :)

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

должны быть права на создание/удаление файлов в /dev, не знаю, как у ТСа, а у меня там права 755, и принадлежит это батьке, поэтому простому юзеру не дадут там беспредельничать.

Ну это уж не знаю, кем надо быть, чтобы в /dev другие права и другого владельца, кроме как Батько Root, прописать. :) Впрочем, как там у ТСа, я тоже не знаю, после этого треда я в нём не уверен. ;)

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

он сам начал 4.2шничать, что в mv вообще никакого удаления нет. И наврал. :)

Не надо тут 4.2 разводить! Я писал, что казалось бы, mv вполне можно сделать без unlink. Как оно там в реальности, я не смотрел

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

Как оно там в реальности, я не смотрел

А вот надо бы сначала «смотреть, как оно там, в реальности». То есть, матчасть учить, а не велосипеды изобретать. Да ещё и на системных файлах устройств эксперименты устраивать.

Ты с диском, с диском поэкспериментируй...интере-е-есно же! ;)

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

Да ещё и на системных файлах устройств эксперименты устраивать.

Ну сломаю я /dev/null, велика потеря

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

«Сам сломаю, сам и починю» (с)«Ирония судьбы, или С лёгким паром»

Как-то так? :)

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

Ну это уж не знаю, кем надо быть

***нартом ***терингом, только тссс, никому.

tiandrey ★★★★★
()
Ответ на: комментарий от cvs-255

Ну сломаю я /dev/null, велика потеря

Почему-то после того, как я null на регулярный файл заменил, а потом обратно, брау^W хромиум перестал запускаться.

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

Дык я ж говорю, заменил, потом обратно вернул нормальный null, но именно хромиум сказал «отказать». Древнейший метод «ребут - и всё пройдёт» и здесь оказался действенным.

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