Будет ли у `mv` возможность создавать каталоги?

Этот вопрос задает наилучший способ создания каталога при использовании mv если он не существует. Мой вопрос: почему это не встроенная функция mv ? Есть ли какая-то фундаментальная причина, из-за которой это не будет хорошей идеей?

  • групповые файлы в папках по именам
  • Переместить папки, не существующие в целевой каталог
  • Сломанные файлы после перемещения их назад и вперед
  • Как вы можете перемещать или копировать определенные файлы из списка текстовых файлов
  • Перемещение определенных каталогов с определенной глубины
  • эквивалент linux / bash для mv -t
  • Перемещение каталогов, несмотря на ошибки
  • Как перемещать файл без сохранения разрешений
  • One Solution collect form web for “Будет ли у `mv` возможность создавать каталоги?”

    Имейте в виду, что существует более одной реализации mv . mv вы используете в linux, не из того же источника, что и для OSX или Solaris и т. Д. Но для них все нужно вести себя одинаково – это точка стандартов . Вполне возможно, что реализация mv могла бы добавить опцию для этой цели, хотя, поскольку ее так просто иметь дело, она, вероятно, не стоит того, потому что очень незначительная выгода превосходит более значительное отрицательное последствие: код, написанный, который использовал такие нестандартная опция реализации не будет переноситься / вести себя постоянно в другой системе, используя стандартную реализацию.

    mv стандартизован POSIX, и это явно связывает его поведение с системным вызовом rename() . В ISO C поведение rename() не очень специфично, и многое осталось до реализации, но в POSIX вы заметите потенциальную ошибку ENOENT , указав, что «компонент префикса пути нового не существует», описывая поведение, ожидаемое в явных выражениях. Это лучше, чем двусмысленность, и оставляя такие детали до реализации, потому что последнее ухудшает переносимость.

    В защиту дизайна в контексте сценариев, вероятно, лучше по умолчанию отказываться от недопустимого целевого пути, чем предполагать, что его нужно просто создать. Это связано с тем, что сам путь может часто поступать из пользовательского ввода или конфигурации и может включать опечатку; в этом случае сценарий должен завершиться неудачно и указать пользователю, что они ввели недопустимый путь. Конечно, есть возможность для человека, который написал код для реализации различного поведения и создания каталогов, которых не существует, но лучше, чтобы вы отвечали за это, чем наоборот (отвечающий за обеспечение победы в mv call, t создавать ранее несуществующие каталоги).

    Interesting Posts

    Что делает команда unix 'pick'?

    Запись файлов grep за последние 30 минут

    2 монитора на графическом процессоре, 1 монитор интегрированной графики

    Отключить сортировку COMPREPLY в полной функции bash

    update-alternatives: отключить файл журнала /var/log/alternatives.log

    Команда Bash не найдена из-за бродячих символов мусора

    Почему эти две команды «cat» приводятся по-разному?

    разрешение на доступ к файлам запрещено, а некоторые сеансы убиты

    Добавление пользователя «ubuntu» к экземпляру Vagrant ubuntu

    Unity – единственная среда рабочего стола, которая поддерживает быстрые клавиши для запуска и фокусировки программ и не объединяет веб-браузеры с браузером?

    CUPS печать PDF-файлов

    Быстрый способ открыть удаленный файл в vim в командной строке

    Почему Adobe Linux для Mac не работает в Linux?

    Arch Linux застревает при загрузке

    Может ли произвольный процесс считывать данные, поступающие в / из сетевого порта? Как?

    Linux и Unix - лучшая ОС в мире.