Перезаписать существующий каталог?

У меня есть имя каталога foo, расположенное в ~/Desktop. Предположим, я хочу создать каталог из терминала с тем же именем и в том же месте. Когда я попытался mkdir, он дал ошибку:

mkdir: cannot create directory `/home/nux/Desktop/foo': File exists

Это имеет смысл, но я хочу заменить foo, если существует. Я просмотрел man mkdir, но нет такого варианта.

Итак, как перезаписать каталог foo?

Почему у опции mkdir нет опции сделать это?

1
задан 21 October 2014 в 00:59

2 ответа

Нет, нет единой команды, чтобы делать то, что вы спрашиваете.

Почему?

Это философия Unix: пишите программы, которые делают что-то одно и делают это хорошо. Напишите программы для совместной работы.1

В этом случае команды mkdir и rm выполняют то, что вам нужно, и работают хорошо вместе, поскольку rm -r также удалит каталог, поэтому в дальнейшем mkdir создаст каталог.

1 Искусство программирования Unix, Эрик С. Раймонд, сам цитирует Дага Макилроя.

6
ответ дан 24 May 2018 в 04:12
  • 1
    на данный момент, это хороший ответ, я буду искать это – nux 29 August 2014 в 04:00

Команда удаления каталога - rm. Таким образом, вам нужны две команды.

rm -r ~/Desktop/foo/
mkdir ~/Desktop/foo/

Как показано в комментариях, вы можете связать их с помощью ; (= сделать оба, даже если первый не удалось) или && (= только mkdir, когда rm не fail).

-r предназначен для удаления dirs. Первая команда также удаляет ВСЕ содержимое каталога. Если это не ваше намерение, то rm и mkdir не являются тем, что вы ищете: разрешения - chmod и chown.

почему у mkdir нет этой опции?

Неоднозначность. mkdir означает создание каталога. Не удалять и создавать каталог. И поскольку команда rm предназначена для удаления файлов, нет необходимости в rmdir удалять каталог.

3
ответ дан 24 May 2018 в 04:12
  • 1
    Я знаю это, но я имею в виду одну команду, вы можете просмотреть мое редактирование, я меняю его – nux 29 August 2014 в 03:39
  • 2
    1 объясните, почему вам нужно воссоздать каталог. Это не имеет смысла для меня. – Rinzwind 29 August 2014 в 03:40
  • 3
    моя потребность имеет смысл, мне просто интересно, как? это имеет смысл для меня :) – nux 29 August 2014 в 03:42
  • 4
    @nux нет, это не так. И ни один из сторонников mkdir не понимает, почему:) То, что вы хотите, бесполезно и не имеет никаких заслуг. – Rinzwind 29 August 2014 в 03:44
  • 5
    ok, если вы хотите знать, что я делаю скрипт для создания резервной копии в новом каталоге с тем же именем foo и позволяет заменить его, если существует, чтобы уменьшить пространство – nux 29 August 2014 в 03:45

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

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