답변:
사용자 명령을 사용할 수 있습니다 : 잘라 내기
truncate -s 0 test.txt
(크기를 지정하려면 "-s 0")
sudo echo > file
. 이러한 경우 오류가 발생합니다.
sudo bash -c '> filename'
sudo와 함께 Bash 솔루션을 사용하는 방법입니다.
brew install truncate
homebrew가 설치된 OS x에서.
당신은 이것을 할 수 있습니다 :
echo -n "" > file.log
파일에 >
(널) 입력을 쓰는 데 사용 echo -n
합니다.
사용하는 >>
것입니다 추가 파일에 널 (null) 입력을 (효과적으로 아무것도하지 않고 있지만 touch
그것을 보내고).
true
(또는 기본 제공 별칭 :
) 과 같은 전용 null 출력 명령을 사용하는 것이 좋습니다 (허용 된 답변 참조).
sudo
.
: > file.log
> filename
Bash 와 동일 하지만 더 많은 쉘 (신용) 에서 작동합니다 . true
내장 (출력이없는) 의 출력을로 리디렉션합니다 filename
.
:> filename
. 스마일처럼 보이지 않습니까? :>
ZSH
>! filename
ZSH는 io redirect 연산자를 사용하여 파일을 방해하는 파일로부터 사용자를 보호합니다 >
. 사용 >!
하면 기존 파일을 강제로자를 수 있습니다.
ZSH가 Bash의 리디렉션 동작을 사용하도록하려면 파일 클로버 링으로부터 보호되지 않았 으면 clobber
셸에 대한 옵션 을 설정해야합니다 .
추가 정보 : http://zsh.sourceforge.net/Doc/Release/Redirection.html
명령 행의 vim 편집기에서 수행하려면 다음을 시도하십시오.
vim file.txt
를 누릅니다 Esc.
:1,$d
를 누릅니다 Enter.
모든 줄이 삭제됩니다.
maillog
도, sudo > /var/log/maillog
(허가 거부)을 취소하지 않을
sudo > /var/log/maillog
수단으로 작동하지 않습니다-sudo를 실행하고 출력을 파일에 넣으십시오. 분명히 현재 사용자 권한으로 출력합니다. sudo su
루트 쉘을 시작한 다음하는 것이 더 쉽다 > /var/log/maillog
.
$ rm file.log; touch file.log
또는
$ cat > file.log
뒤에 control-d
.
또는 ... 또는 ... 또는 ...
아 다음은 단일 명령 버전입니다.
$ dd if=/dev/null of=file.log
echo "" > file.log
보다 낫습니다. cat
이 상황에서 cat
더 적합한 곳 이 있습니다. 둘 다 동일한 쉘 재 지정을 사용하여 무거운 물건을 들어 올립니다.
rm
는 동일한 이름의 빈 파일을 생성하는 작업을 수행합니다. 그러나 모든 사용 사례에 적합하지는 않습니다.
파일에 액세스하기 위해 수퍼 유저 권한을 sudo해야하는 경우 허용 된 답변이 작동하지 않습니다. 이것을 사용하면 작동합니다.
truncate -s0 file
또는 sudo를 사용하여 명시 적으로 :
sudo truncate -s0 file
자세한 정보는 여기 http://www.commandlinefu.com/commands/view/12/empty-a-file
Bash의> filename과 동일하지만 더 많은 쉘 (신용)에서 작동합니다. 출력이없는 실제 내장 출력을 파일 이름으로 리디렉션합니다.