세 개 이상의 파일이 삭제될 때마다 기본적으로 호출되는 스크립트를 만들고 싶습니다 rm -i
. 초기화 파일에 들어가는 것을 알고 있지만 제대로 작동하지 않는 것 같습니다.
지금까지:
if [$file -ge 3]; then
rm -i
exit 0
else
rm
exit 1
답변1
@Tim의 답변에 제공된 기능은 bash를 실행하는 모든 시스템에서 작동합니다. 그러나 GNU는 rm
이미 귀하의 필요에 맞는 옵션을 제공합니다( man rm
).
-I prompt once before removing more than three
files, or when removing recursively. Less
intrusive than -i, while still giving protec‐
tion against most mistakes
따라서 GNU가 있는 경우 rm
(Linux를 실행하는 경우 그래야 함) 다음 줄을 다음 줄에 추가하면 됩니다 /.bashrc
.
alias rm='rm -I'
3개 이상의 파일을 삭제하는 경우 메시지가 표시되지만 각 파일을 확인하라는 메시지는 표시되지 않습니다. 작업을 확인하면 모든 파일이 삭제됩니다.
답변2
이것은 저에게 효과적이었습니다. 다음 줄을 귀하의 줄에 추가하십시오 ~/.bashrc
.
rm() {
if [ "$#" -ge 3 ]; then
command rm -i "$@"
else
command rm "$@"
fi
}
이렇게 하면 실행될 때마다 호출되는 rm
대신 호출되는 함수가 생성됩니다 ./bin/rm
rm
"$#"
전달된 인수 수로 확장됩니다.
답변3
간결하지만 여전히 이식 가능한 접근 방식은 다음과 같습니다.
rm() {
command rm $([ ${#} -gt 3 ] && echo \-i) "$@"
}
rm
그러나 의미론을 변경하지 않는 것이 좋습니다 .회신하다더 알아보기.