Bash 스크립트에서 새로운 빈 파일을 만드는 방법은 무엇입니까?

Bash 스크립트에서 새로운 빈 파일을 만드는 방법은 무엇입니까?

출력 파일을 출력 플래그로 요구하는 일부 타사 Perl 스크립트를 실행하고 있습니다 -o.

안타깝게도 스크립트에는 실제 파일이 필요한 것 같습니다. 즉, 사용자는 filename.txt0바이트의 빈 파일을 만든 다음 이 빈 파일을 스크립트 명령줄에 입력해야 합니다.

perl script1.pl -o filename.txt

질문: Bash 스크립트에서 빈 파일을 만드는 방법은 무엇입니까? 그냥 시도하면 perl script1.pl -o filename.txt스크립트는 파일이 존재하지 않는다는 오류를 표시합니다.

답변1

touch명령을 사용하십시오 . touch filename.txt.

답변2

최단 경로:

>filename

답변3

빈 명령( :) 리디렉션( > filename) 트릭( :>)을 사용하면 0으로 잘리거나 지정된 파일이 생성됩니다.

$ echo foo > filea
$ :> filea
$ wc -c filea
       0 filea
$ rm filea
$ :> filea
$ wc -c filea
       0 filea

(쉘에 NOCLOBBER 옵션이 설정되어 있으면 실패합니다.)

답변4

dd다음과 같이 빈 파일을 만드는 데 사용할 수 있습니다.

dd if=/dev/null of=filename.txt count=0

dd다른 방법보다 더 유용한 상황 중 하나는 efivars파일 시스템( )을 통해 /sys/firmware/efi/efivarsEFI 변수(PK)를 생성할 때입니다.

일부 플랫폼 및 Linux 배포판에서는 파일이 immutible" " 속성 세트( i" "가 있는 lasattr" " 플래그 로 표시됨)로 생성됩니다. 따라서 파일에 대한 모든 후속 작업이 실패합니다.

예를 들어, touch파일을 생성할 뿐만 아니라 파일에 타임스탬프를 설정합니다. 마찬가지로, 파일에 대한 파이핑은 >파일을 생성할 뿐만 아니라 실패한 다른 작업도 수행합니다. 명령 dd은 같은 방식으로 실패하지 않는 것 같습니다.

관련 정보