현재 작업 디렉토리가 다음과 같다고 가정해 보겠습니다.
/Users/Directories
"디렉터리" 아래에는 이름과 성이라는 두 개의 별도 디렉터리가 있습니다. 이름 디렉터리로 이동합니다.
$ cd firstname
이름에 test1.txt라는 빈 파일을 생성하려고 하므로 다음을 입력합니다.
$ touch test1.txt
여기서 막히게 됩니다. 이름을 유지하지 않고 성 디렉터리에 test2.txt라는 파일을 만들고 싶습니다. 나는 이것을 시도했지만 작동하지 않는 것 같습니다. 미리 감사드립니다.
$ touch test2.txt../lastname
답변1
그게 다야:
$ touch ../lastname/test2.txt
touch
대신 사용할 수 있습니다 >
.
$ > ../lastname/test2.txt
절대 경로를 사용할 수도 있습니다
$ > /Users/Directories/lastname/test2.txt
파일이 미리 존재하는 경우 파일을 자르고 touch
액세스 권한과 마지막 수정 시간만 업데이트합니다.
¹ 오류가 발생하는 (t)csh나 Fish, 실행되는 zsh가 아닌 예를 들어 $NULLCMD
출력을 생성하지 않는 실제 명령을 리디렉션하거나 true
작동 printf
하는 모든 셸에서 사용할 수 없습니다.
답변2
하나의 명령으로 여러 파일을 생성하려면 다음을 수행하십시오.
$ touch ../lastname/{test1.txt,test2.txt,test3.txt}
아니면 여기에서도 구체적으로:
$ touch ../lastname/test{1,2,3}.txt
이는 1970년대 후반 C-쉘에서 도입되었으며 zsh, bash 및 Fish를 포함한 다른 많은 쉘에서 복사된 기능인 중괄호 확장을 사용합니다. 일부 셸(예: yash 및 ksh의 일부 버전/버전)에서는 기본적으로 활성화되어 있지 않으므로 set -o braceexpand
표준이 아니므로 sh
스크립트에서 사용하면 안 됩니다.
90년대에 zsh는 숫자 범위를 지원하도록 이를 확장했으므로 (ksh93 및 bash를 포함하여 나중에 이를 복사한 몇 가지 다른 셸에서도) 다음을 수행할 수도 있습니다.
$ touch ../lastname/test{1..3}.txt
쉘과 그 파생물의 동등한 구문은 다음 rc
과 같습니다.
$ touch ../lastname/test^(1 2 3)^.txt