/dev/null을 처리하려면 cat 또는 cp 및 touch를 사용하세요.

/dev/null을 처리하려면 cat 또는 cp 및 touch를 사용하세요.

튜토리얼에서공개 키 인프라작성자는 설정 시 사용할 데이터베이스를 설정했습니다.루트 인증 기관:

cp /dev/null ca/root-ca/db/root-ca.db
cp /dev/null ca/root-ca/db/root-ca.db.attr
echo 01 > ca/root-ca/db/root-ca.crt.srl
echo 01 > ca/root-ca/db/root-ca.crl.srl

/dev/null아무것도 들어있지 않은 특수 파일이고, 들어가보면 echo아무데도 인쇄되지 않는 것으로 알고 있습니다 .

이것이 작성자가 원하는 작업인 것 같아서 테스트하기 위해 작은 예제를 만들었습니다.

$ ls
$ touch foo
$ cp /dev/null bar
$ cat /dev/null > baz
$ ls
bar baz foo
$ ls -l
total 0
-rw-r--r--  1 mbigras  1264914557  0 Apr 14 14:35 bar
-rw-r--r--  1 mbigras  1264914557  0 Apr 14 14:35 baz
-rw-r--r--  1 mbigras  1264914557  0 Apr 14 14:35 foo
  • 빈 디렉토리가 있다고 가정하면 file foo또는 ? bar사이에 차이점이 있습니까 ?baz
  • cpfrom ing의 요점은 /dev/null우리가 알고 있는 비어 있는 파일을 생성하는 것입니까?

답변1

모든 결과는 동일한 빈 파일을 생성합니다.

그냥 사용하는 것도 가능합니다 . 존재에 의존하지 않고 추가 명령/프로세스를 호출하지 않기 >baz2때문에 좀 더 우아하다고 생각합니다 ./dev/null

touch와 달리 파일이 이미 존재하고 일부 내용이 있더라도 결과는 빈 파일이 된다는 점을 명심하세요 .>baz2baz2

$ touch foo
$ cp /dev/null bar
$ cat /dev/null >baz
$ >baz2
$ ls -l
total 0
-rw-rw-r-- 1 ec2-user ec2-user 0 Apr 14 21:40 bar
-rw-rw-r-- 1 ec2-user ec2-user 0 Apr 14 21:40 baz
-rw-rw-r-- 1 ec2-user ec2-user 0 Apr 14 21:40 baz2
-rw-rw-r-- 1 ec2-user ec2-user 0 Apr 14 21:39 foo
$

답변2

차이점은 파일이 이미 존재하고 내용이 있는 경우 발생합니다.

예를 들어 다음 내용이 포함된 파일입니다.

$ ls -l ca/root-ca/db/root-ca.db
-rw-r--r-- 1 sweh sweh 6 Apr 14 18:06 ca/root-ca/db/root-ca.db
$ touch ca/root-ca/db/root-ca.db
$ ls -l ca/root-ca/db/root-ca.db       
-rw-r--r-- 1 sweh sweh 6 Apr 14 18:06 ca/root-ca/db/root-ca.db
$ cp /dev/null ca/root-ca/db/root-ca.db
$ ls -l ca/root-ca/db/root-ca.db       
-rw-r--r-- 1 sweh sweh 0 Apr 14 18:06 ca/root-ca/db/root-ca.db

이 명령은 파일 touch을 지우지 않는다는 것을 알 수 있습니다 .cp

이제 일반적으로 :다음 명령을 사용할 수 있습니다.

: > ca/root-ca/db/root-ca.db

예를 들어

$ ls -l ca/root-ca/db/root-ca.db
-rw-r--r-- 1 sweh sweh 6 Apr 14 18:08 ca/root-ca/db/root-ca.db
$ : > ca/root-ca/db/root-ca.db  
$ ls -l ca/root-ca/db/root-ca.db
-rw-r--r-- 1 sweh sweh 0 Apr 14 18:08 ca/root-ca/db/root-ca.db

그러나 교육 노트 및 교과 과정에서는 읽기가 더 어려울 수 있으며 철자 오류 또는 이와 유사한 것으로 간주될 수 있습니다. 때로는 더 긴 명령 문자열을 사용하는 것이 더 좋습니다 :-)

관련 정보