`mv`가 디렉토리를 생성할 수 있나요?

`mv`가 디렉토리를 생성할 수 있나요?

이것질문은 .NET을 사용할 때 mv디렉토리가 존재하지 않는 경우 디렉토리를 생성하는 가장 좋은 방법 에 대해 묻습니다. 내 질문은 이것이 내장 기능이 아닌 이유입니다 mv. 이것이 나쁜 생각인 근본적인 이유가 있습니까?

답변1

구현이 두 개 이상 있다는 점을 기억하세요 mv. Linux에서 사용 mv하는 소스는 OSX나 Solaris 등에서 사용하는 소스와 정확히 동일하지 않습니다. 하지만 그들 모두가 같은 방식으로 행동하길 바라요- 그게 요점이야기준. 아마도 mv구현 시 이 목적을 위한 옵션을 추가할 수 있을 것입니다. 비록 처리하기가 너무 간단하기 때문에 아마도 그럴 가치가 없을 것입니다. 매우 작은 이점보다 더 심각한 부정적인 결과가 더 클 것이기 때문입니다. 이 구현되지 않은 표준 옵션을 이용하는 것은 좋지 않습니다. 표준 구현을 사용하는 다른 시스템으로/에서 이식 가능합니다.

mvPOSIX에 의해 표준화됨이는 행동과 행동을 명확하게 구별합니다.rename()시스템 호출. ISO C에서는 다음의 rename()동작을 수행합니다 .ENOENT새로운존재하지 않습니다"라는 문구를 사용하여 예상되는 동작을 명확한 용어로 설명합니다. 이는 모호하고 세부 사항을 구현에 맡겨 이식성을 손상시키는 것보다 낫습니다.

디자인을 방어하기 위해 스크립팅 컨텍스트에서 기본적으로 잘못된 대상 경로에서 실패하는 것이 아마도 것보다 낫습니다.생각하다그냥 생성하면 됩니다. 이는 경로 자체가 종종 사용자 입력이나 구성에서 나올 수 있고 오타가 포함될 수 있기 때문입니다. 이 경우 스크립트는 이 시점에서 실패하고 사용자에게 잘못된 경로를 입력했음을 표시해야 합니다. 물론 코드를 작성하는 사람이 다른 동작을 구현하고 존재하지 않는 디렉토리를 생성하도록 선택할 수도 있지만, 그 반대의 경우보다는 사용자가 이 작업을 담당하는 것이 더 좋습니다(호출이 발생하지 mv않도록 하는 책임). 이전에 존재하지 않았던 디렉토리를 생성하지 마십시오).

관련 정보