Правильное удаление жестких ссылок

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

Причина, по которой скрипт работает, когда вы запускаете его вручную, заключается в том, что файл tables.txtнаходится в текущем каталоге, поэтому у системы нет проблем с его поиском.

7
30.08.2019, 23:05
3 ответа

Команда для удаления жесткой ссылки rm.

Из справочной страницы дляrm:

Remove (unlink) the FILE(s).
8
27.01.2020, 20:13

TL;DR... просто удалите ненужное имя файла (с помощьюrm).

Если вы создаете жесткую ссылку (, что и делает ваша команда выше ), у вас есть два имени, указывающих на одну и ту же область памяти. Вы можете удалить любое имя, не затрагивая другое имя или хранилище -. Только когда удаляется последнее имя, область хранилища освобождается.

Сравните это с программными ссылками... созданными с помощью ln -s-, здесь ссылка другая, это указатель на исходное имя, а не указатель на хранилище. Если вы удалите исходный именованный файл, программные ссылки указывают на что-то, что было удалено, поэтому ссылка остается, но не работает.

14
27.01.2020, 20:13

В большинстве существующих ответов рекомендуется использовать rm. Это совершенно правильно, потому что вы не удаляете файлы :, вы удаляете ссылки (, и файл удаляется, когда удаляется последняя ссылка, указывающая на него, и закрывается последний открытый файловый дескриптор ).

Однако следует знать и о другой полезности, unlink. В нем отсутствуют параметры rm, и всегда есть неявный -fпараметр (вроде --, он не будет работать с отсутствующим файлом, хотя ). Преимущество в том, что вы можете удалить файл, начинающийся с дефиса, по крайней мере в теории...

...за исключением того, что вы не можете, если вы используете систему Linux, потому что GNU искалечил утилиту unlink, добавив поддержку опции строки команды -! Таким образом, unlink -tне удаляет файл с именем -tв системе Linux или любой другой системе, использующей GNU coreutils.

(Да, я знаю, что rm -- -tили unlink -- -tработает, нет необходимости комментировать это.)

0
27.01.2020, 20:13

Теги

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