"rm : 쓰기 방지 된 일반 파일 [x]를 제거 하시겠습니까?"에 대한 응답으로 사용할 솔루션을 찾고 있습니다.
bashrc에서 문자를 여러 번 발행하고 캐리지 리턴을 시도하는 것을 생각하고있었습니다. 우리는 어떻게합니까?
"rm : 쓰기 방지 된 일반 파일 [x]를 제거 하시겠습니까?"에 대한 응답으로 사용할 솔루션을 찾고 있습니다.
bashrc에서 문자를 여러 번 발행하고 캐리지 리턴을 시도하는 것을 생각하고있었습니다. 우리는 어떻게합니까?
답변:
업데이트 된 질문을 기반으로 편집 :
파일 제거에 대한 요청을 피하려면 -f
( "force") 옵션을 추가하십시오 .
rm -f /path/to/file
주어진 경로 중 하나라도 존재하지 않으면이를 보고 하지 않고 성공적으로 반환됩니다.
$ rm -f /nonexistent/path
$ echo $?
0
원래 답변 :
간단한 해결책은 다음과 같습니다.
yes "$string" | head -n $number | tr $'\n' $'\r'
yes
줄 바꿈으로 구분하여 줄을 무한정 반복합니다. 시간 head
이 지나면 중단 하고 개행을 캐리지 리턴으로 변환합니다. 캐리지 리턴으로 인해 출력이 표시되지 않을 수 있지만이 명령 (in )으로 전달하면 다음과 같이 표시 됩니다.$number
tr
bash
printf %q "$(yes "$string" | head -n $number | tr $'\n' $'\r')"
없는 사용자 bash
캔 파이프 결과로 od
, hexdump
또는 xxd
실제 문자가 반환 참조하십시오.
rm
쓰기 보호 된 파일에 대해 "대화식"(사용자 입력 대기 프롬프트)을 표시하도록 하드 코딩됩니다. rm
묻지 못하게하는 두 가지 방법이 있습니다 .
rm -rf somedir
과
rm -r --interactive=never somedir
( -r
dirs 대신 파일을 삭제할 때도 작동하지 않습니다 )
설명:
-f
한다 rm
"프롬프트, 존재하지 않는 파일 및 인수를 결코 무시하지"할 수 있습니다.
--interactive=never
대화식으로 말하지 마십시오. 다시 말해, 절대 프롬프트하지 않습니다.
의 차이 -f
와 --interactive=never
"존재하지 않는 파일 및 인수를 무시"이 부분입니다.
비교:
$ rm -rf nonexistingname
$ echo $?
0
과
$ rm -r --interactive=never nonexistingname
rm: cannot remove 'nonexistingname': No such file or directory
$ echo $?
1
rm
대화 형 대화를 원하지 않지만 여전히 오류를 처리 하려는 스크립트를 작성할 때 차이가 있습니다.
요약 : 명령 행 사용 rm -rf
. 스크립트에서 사용 rm -r --interactive=never
합니다.
명시된 질문에 대한 답변 ( "보호 된 파일을 제거 할 때"y "를 여러 번 발행하지 않아도되는 방법")은 https://askubuntu.com/questions/338857/automatically-enter-input-in-command-line을 참조 하십시오. / 338860 # 338860
나도 같은 문제에 부딪쳤다. 위의 대답은 하나의 파일에 대한 것이지만 많은 예를 무시하려면.
당신이 사용할 수있는
sudo rm -r /path/to/directory
쓰기 금지 된 일반 파일을 모두 제거