Windows에 / dev / null이 있습니까?


414

/dev/nullWindows 에서 이에 해당하는 것은 무엇입니까 ?

답변:


487

NUL적어도 명령 프롬프트 또는 배치 파일 내에서 원한다고 생각 합니다.

예를 들면 다음과 같습니다.

type c:\autoexec.bat > NUL

파일을 만들지 않습니다.

(내가 생각 프로그래밍 파일을 만들려고하면 동일 사실이지만, 나는 그것을 시도하지 않았습니다.)

PowerShell에서 원하는 것은 $null다음과 같습니다.

echo 1 > $null

20
@capthive : /dev/null.txt와 /dev/null/foo.txt에는 차이가 있습니다.
Jon Skeet

2
방금 이것을 다시보고 원래 진술을 철회했습니다. 코드로 작성하고 있었고 오류가 발생했습니다. 나는 그것을 실수로 진실로 받아들이지 않도록 삭제하고 있습니다.
Jim Hunziker

3
: Windows에서 유닉스 "특별한"파일을 찾는 사람들을 위해 여기에 있습니다 /dev/random/dev/zeroWin32에서 장치 드라이버.
ulidtko

9
@CoDEmanX : 그건 내 경험이 아닙니다. 콘솔 또는 파일에 쓰는 데 상당한 시간이 걸릴 수 있습니다. 방금 "Hello there"라고 쓰인 프로그램으로 10000000 번을 테스트했습니다. SSD로 파일을 리디렉션하는 데 18 초가 걸렸습니다. NUL로 리디렉션하는 데 4 초가 걸렸습니다. 전혀 리디렉션되지 않음 ... 나를 잠시 후 인내심의 부족을 포기했다
존 소총을

2
나는 당신이 그렇게 특별한 장치 이름 뒤에 콜론을 작성해야한다는 Win95는 시대에 다시 배웠습니다 NUL:(그리고 CON:, PRN:...), 그것은 분명 스타일과 쇼의 문제가 대부분입니다 NUL:특수 객체가 아닌라는 파일이 NUL. 또한 특수 API를 사용하여 파일을 만들 수 있습니다 NUL(답 중 하나 참조). 만약 언젠가 모든 사람들이 규칙에 따라 콜론을 사용한다면, 우리는 두려운 특수 장치 이름을 더 이상 사용하지 않을 수있을 것입니다. :-)
jdm

65

GCC 메일 링리스트 의이 메시지에 따르면 / dev / null 대신 "nul"파일을 사용할 수 있습니다.

#include <stdio.h>

int main ()
{
    FILE* outfile = fopen ("/dev/null", "w");
    if (outfile == NULL)
    {
        fputs ("could not open '/dev/null'", stderr);
    }
    outfile = fopen ("nul", "w");
    if (outfile == NULL)
    {
        fputs ("could not open 'nul'", stderr);
    }

    return 0;
}

( 이 코드에 대해 Danny 에게 감사의 말 을 전하고 메시지에서 복사하여 붙여 넣습니다.)

리디렉션을 통해이 특수 "널"파일을 사용할 수도 있습니다.


1
아, 이것은 C:\devWindows에서 디렉토리 를 만들고 많은 GNU 유틸리티를 사용하면 결국 그 디렉토리에서 null이라는 신비한 파일을 얻는 이유를 설명합니다 .
Klitos Kyriacou

50

NULWindows에서 실제로는 모든 폴더의 가상 경로 인 것 같습니다. 마찬가지로 .., .어떤 파일 시스템에.

NUL이 뒤 따르는 폴더를 사용하십시오.

예,

echo 1 > nul
echo 1 > c:\nul
echo 1 > c:\users\nul
echo 1 > c:\windows\nul

/dev/null리눅스 에서와 같은 효과가 있습니다.

이것은 Windows 7, 64 비트에서 테스트되었습니다.


7
니스, 그것은 : 윈도우 7 64 비트에 "NUL"라는 이름의 파일을 만들 수는 없습니다
데이비드 Ferenczy Rogožan

7
@DawidFerenczy 고전적인 방법은 아니지만 가능합니다. 예 : md \\.\c:\nul quora.com/… , gohacking.com/how-to-create-con-folder-in-windows , superuser.com/questions/86999/…
phuclv

1
bash의 Windows 10에서 첫 번째 파일은 파일을 만듭니다nul
DrumM

win10에서 java를 사용하여 IOException을 발생시킵니다. 시험해보십시오. / dev / null과 같은 예외 / 오류가
없어지기를 바랐습니다

34

Jon Skeet이 맞습니다. Windows Embedded 설명서 의 Nul Device Driver 페이지 는 다음과 같습니다 (왜 다른 곳에 있지 않은지 모르겠습니다 ...).

여기 또 다른 것이 있습니다 :


69
물론 Jon Skeet은 정확합니다. 명백하고 보편적 인 진실을 진술 해 주셔서 감사합니다 :)
R. Martinho Fernandes

1
여기 링크 중 2 개가 끊어졌습니다. :(
Michael Foukarakis

9

NUL프로그래밍 방식으로도 작동합니다. 예를 들면 다음과 같습니다.

freopen("NUL", "w", stderr);

파일을 만들지 않고 예상대로 작동합니다. (MSVC ++ 12.0)


1
질문에 대한 답변이 필요한 횟수는 매우 많으며 NUL5 년 전 그 시점을 지났습니다.
miken32

6
이 답변이 토론에 유효한 기여를 추가한다고 생각합니다.
Jeroen

3

Microsoft Windows /dev/null에서 Linux에서 와 동일한 심볼릭 링크를 수행 해야하는 경우 관리자를 열고 cmd입력하십시오.

파일의 경우 :

mklink c:\path\to\file.ext NUL:

또는 디렉토리의 경우 :

mklink /D c:\path\to\dir NUL:

이렇게하면 파일 / 디렉토리가 항상 0 바이트로 유지되고 모든 쓰기 시도에 성공을 계속합니다.


-1

Windows PowerShell 에서 이를 위해 start$ NUL 을 사용해야 합니다 .

mySum응용 프로그램의 이름이며 5 10전송중인 명령 행 인수 라고 가정하여이 명령을 입력 하십시오 .

start .\mySum  5 10 > $NUL 2>&1

start명령은와 유사한 효과로 분리 된 프로세스를 시작합니다 &. /B옵션 방지는 실행중인 프로그램이 콘솔 응용 프로그램 인 경우 새 터미널 창을 여는 시작합니다. 그리고 NULWindows와 동일 /dev/null합니다. 2>&1끝에 모두로 이동합니다 표준 출력에 열려진 리디렉션됩니다 NUL.


왜 downvote? 설명하십시오
HaSeeB MiR
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.