파일의 경우 mkdir -p

파일의 경우 mkdir -p

mkdir -p디렉터리가 생성되며 필요에 따라 상위 디렉터리도 생성됩니다.

필요에 따라 파일과 상위 디렉터리를 생성하는 파일에 대한 유사한 명령이 있습니까?

답변1

install이 유틸리티는 소스 파일이 제공되면 이 작업을 수행합니다 /dev/null. 매개변수는 -D모든 상위 디렉토리를 생성하는 것을 의미합니다.

anthony@Zia:~$ install -D /dev/null /tmp/a/b/c
anthony@Zia:~$ ls -l /tmp/a/b/c 
-rwxr-xr-x 1 anthony anthony 0 Jan 30 10:31 /tmp/a/b/c

이것이 버그인지 확실하지 않습니다. 맨 페이지에는 장치 파일과 어떻게 작동하는지에 대한 언급이 없습니다. 빈 파일(예: 새로 생성된 파일 사용 mktemp)을 소스로 제공할 수도 있습니다 .

답변2

아니요, 제가 아는 한은 아닙니다. 하지만 언제든지 and 를 사용할 수 있습니다 mkdir -p.touch

f="/a/b/c.txt"
mkdir -p -- "${f%/*}" && touch -- "$f"

답변3

이런 상황이 자주 발생하므로 파일 .bashrc에 함수를 작성 했습니다. 이렇게 생겼어

function create() {
    arg=$1
    num_of_dirs=$(grep -o "/" <<< $arg | wc -l)
    make_dirs=$(echo $arg | cut -d / -f1-$num_of_dirs)
    mkdir -p $make_dirs && touch $arg
}

그래서 존재하지 않는 디렉터리의 경로에 파일을 만들고 싶을 때 나는 이렇게 말합니다.

create what/is/it  # will create dirs 'what' and 'is', with file 'it' inside 'is'

답변4

다음을 다음 항목에 추가하세요 ~/.bashrc.

function mktouch() {
        mkdir -p -- "$(dirname -- "$1")" && touch -- "$1"
} 

그런 다음 다시 로드하여 bash예전처럼 사용하십시오 mktouch your/path/file.txt.

관련 정보