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
.