묻지 않고 파일 제거


89

파일 삭제에 동의하는지 사용자에게 묻지 않고 파일을 제거하려면 어떻게해야합니까? 쉘 스크립트를 작성하고 rm 함수를 사용하고 있지만 "일반 파일을 제거 하시겠습니까?" 정말 필요하지 않습니다. 감사합니다.


5
rm -fyes | rm이 있지만 SU에 속합니다.

4
rm"일반 파일 제거?"가 표시되지 않습니다 기본적으로 프롬프트. 에 별명을 지정 rm -i하거나 함수로 정의 해야합니다 . 스크립트 내에서 별칭이 표시되는 것에 놀랐습니다. 스크립트 ( ./foo.sh) 를 실행 하거나 소싱 ( . foo.sh또는 source foo.sh)합니까?
Keith Thompson

답변:


102

당신은 수도 rm별칭 rm -i때문에이 시도 :

/bin/rm -f file.log

별명을 보려면 다음을 실행할 수 있습니다 alias.


7
또한, 사용 command rm ...또는 \rm ...별칭 / 기능 건너
글렌 잭맨

6
그것은 한 주장 됐어요 rm별칭 rm -i나쁜 생각이다. rm명령은 기본적으로 자동으로 명명 된 파일을 제거합니다. 에 별명 rm -i을 지정하면 대화식 프롬프트에 따라 Enter를 누르기 전에 신중하게 확인하지 않는 습관을 들일 수 있습니다. 그런 다음 rm some-important-file별명없이 환경 을 입력 하십시오.
Keith Thompson

@Keith 그건 사실입니다. 저는 개인적으로 rm
chown

1
"rm"이 별명 대신 함수 인 경우이 답변이 작동합니다. 그리고 bash unset명령은 흥미로울 것입니다
Xen2050

56

force 플래그는 모든 프롬프트를 제거합니다.

rm -f {file}


2
이것이 내가 찾고있는 것이지, 대답은 아닙니다.
gsamaras

29

포스가 함께하길 - rm -f


5
나는 이미 스리랑카의 대답을 공언했으며 이것은 정확히 동일합니다. 유머 감각에 대한
찬성

나는 누군가가 실제로 유머 감각을 발견했기 때문에 의견과 대답 모두를 찬성했습니다 ...
Mac

5

쉘 스크립트 내에서 사용하고 rm -f <filename>싶지만 쉘 (또는 프로파일) -i을 입력하여 환경에 대한 내재적 옵션을 제거하는 옵션도 있습니다 unalias rm.


5

yes프로그램이 계속 어떤 메시지에 '예'응답합니다. 대화 형 rm프로그램 으로 파이프 하여 원하는 효과를 얻을 수도 있습니다.

yes | rm <filename>

반대로, 대화 형 작업을하지 않으려면 할 수 있습니다

yes n | <something interactive>

입력 스트림에서 'n'을 반복합니다 (질문에 효과적으로 대답하지 않음)


yes n옵션은 나를 위해 작동하지 않습니다. 내가 사용하는 동안 yes n | rm file.txt파일이 올바르게 보호 되더라도 실제로 파일을 제거합니다.
iammilind

5

파일을 삭제하는 데 필요한 권한이 있고 메시지를 표시하지 않으려면 다음을 수행하십시오 (-f = force).

rm -f file

파일에 대한 권한이없는 경우 다음을 사용해야합니다.

sudo rm -f file

1
"일반 파일을 제거 하시겠습니까?" 프롬프트는 권한 문제가 아님을 나타냅니다.
Keith Thompson

4
\rm file

백 슬래시 \는 별칭을 무시합니다.


1
"\"는 백 슬래시입니다. 무슨 뜻인가요?
Cand3r

예, 별칭없이 rm을 사용하면 원치 않는 확인 대화 상자 접두어가 \로 표시됩니다.
teknopaul

1

사용 떨어져 -f매개 변수를 선택적으로 사용할 수있는 find대신에 명령을, 예를 들어,

find -name file.log -delete

0

현재 bash 쉘이 글로벌 구성 파일 중 하나의 함수로 rm 명령의 정의를 수신 한 시스템에서 일하고 있습니다.

 rm  () { /bin/rm -i ${1+"$@"}; }

따라서 별칭에 관한 위의 답변 중 어느 것도 효과가 없었습니다. 성가신 동작을 막기 위해 .bashrc 파일에서 rm 함수를 해제했습니다.

 unset -f rm

나는 오프너와 비슷한 문제가있었습니다. 그러나 rm쉘 함수에 의해 숨겨진 가능성을 언급 한 답변을 찾지 못했습니다 . 그래서 같은 유형의 문제에 직면 한 누군가에게 도움이되기를 바랍니다.

입력 /bin/rm하거나 rm -f항상 입력 하는 것이 불편하고 나쁜 결과를 초래할 수 있습니다 (의 경우 rm -f).


문제가 해결되었을 수도 있지만 질문에 대한 답변은 아닙니다.
suspectus

선택한 답변이 전화를 /bin/rm걸지 않습니까? bash에 함수가 있고 현재 디렉토리에 동일한 이름을 가진 실행 파일이있는 경우 이름 ./앞에 추가 하면 함수가 아닌 파일을 호출합니다. 추신-나는 함수에 대한 선택된 답변에 댓글을 추가했습니다 &unset
Xen2050

예, /bin/rm작동합니다. 이렇게하면 unset전체 경로를 입력 할 필요가 없습니다.
daw

0

rm에 별칭이 있으면 ; rm -i을 사용하십시오 unalias rm.

rm -f쓰기 방지 된 파일을 많이 제거 하지 않으려면 직접 사용하지 마십시오 . 사용해야 할 아주 좋은 이유가 있어야합니다 -f.

그러나 쓰기 방지 된 파일이 많은 경우 rsync -r --delete empty/ removed_dir/더 빠른 속도를 원할 수 있습니다 .


0

가장 좋아하는 방법 command은 bash에서 command를 사용하는 것 sudo입니다. 이렇게하면 명령을 실행하는 것처럼 별칭없이 별칭을 실행합니다 /bin/rm(아마도 rm별칭이 있습니다 rm -i).

예:

command rm -f /tmp/file.txt

0
rm -Rf <folder-to-be-deleted>

-R : 재귀 f : 힘, 프롬프트 없음

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