현재 디렉토리를 변경하지 않고 Linux의 다른 디렉토리에 빈 파일을 만드시겠습니까?

현재 디렉토리를 변경하지 않고 Linux의 다른 디렉토리에 빈 파일을 만드시겠습니까?

현재 작업 디렉토리가 다음과 같다고 가정해 보겠습니다.

    /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

관련 정보