Linux에서 파일을 만드시겠습니까? (터치&에코)

Linux에서 파일을 만드시겠습니까? (터치&에코)

저는 일반적으로 Linux를 처음 접했기 때문에 특정 명령의 해야 할 일과 하지 말아야 할 일에 대해 잘 모릅니다.

파일을 만들고 메모하고 싶습니다.

touch file.txt `

파일을 생성할 뿐만 아니라 다음도 수행합니다.

echo >> file.txt

그리고

> file.txt

"">"와 "touch"를 사용하여 만든 파일은 모두 0바이트이지만 "echo"를 사용하여 만든 파일은 1바이트입니다.

파일 크기가 다른 이유는 무엇입니까? 파일을 만드는 가장 좋은 방법은 무엇입니까? 파일을 만들 때 "touch" 또는 "">" 대신 "echo"를 사용해야 하는 경우는 언제입니까?

답변1

파일 생성에 대한 일반적인 질문은 다음을 참조하세요.파일을 생성하는 쉘 명령이 없는 이유는 무엇입니까?


> file와 함께 echo >> file,껍데기파일이 아직 존재하지 않으면 파일이 생성됩니다.

를 사용하면 > file파일이 이미 있으면 잘립니다. 명령이 지정되지 않았으므로 파일에 아무 것도 기록되지 않으며 파일은 비어 있게 됩니다.

echo, 매개변수 없이 빈 줄을 인쇄합니다. 따라서 출력에는 줄 끝 문자, 일반적으로 개행 문자(LF, \n)가 포함됩니다.

% echo | od -c
0000000  \n
0000001

따라서 를 사용하면 echo >> file파일에 1바이트를 쓸 수 있습니다. 파일이 이미 존재하는 경우 (덮어쓰기) >>대신 (추가)를 사용했기 때문에 바이트가 추가됩니다 >.

touch파일이 아직 존재하지 않으면 파일을 생성하고, 그렇지 않으면 파일의 타임스탬프를 업데이트합니다. touch파일의 내용은 변경되지 않으므로 파일이 이미 존재하고 일부 내용이 포함된 경우 touch.

어떤 것을 사용하고 싶은지는 원하는 효과에 따라 다릅니다.

답변2

무루의 대답행동의 차이가 잘 설명되어 있습니다.

요구 사항에 따라 동일한 목표를 달성하는 방법이 여러 가지 있을 수 있습니다. 이 경우에는 "맛"이나 가독성의 문제일 수 있습니다. 나는 선호한다 touch. 틀림없이 더 안전합니다. 파일이 이미 존재하고 해당 내용을 잃고 싶지 않은 경우입니다. 또한 잊을 수 없습니다.

스크립트에 명령을 작성하는 경우 일반적인 규칙은 사람들이 코드를 작성하는 것보다 코드를 더 많이 읽는다는 것입니다. 즉, 당신은 컴퓨터뿐만 아니라 미래의 자신을 포함하여 인간과도 소통하고 있습니다. :-). 다음 코드 줄이 약간 명확하지 않을 수 있습니다.

> file

똑같은 동작이 필요한 경우에는 > file이라는 명령도 있습니다 truncate. truncateGNU coreutils에서 제공됩니다.

관련 정보