대량의 데이터를 매우 효율적으로 파괴하는 데 능숙한 일부 터미널 명령이 있습니다. 좋아요: sudo rm -rf /*
또는 rm -rf /*
. 이러한 파괴적인 명령을 입력할 때마다 표시되는 경고를 설정하고 싶습니다. 이 같은:
sudo rm -rf /*
Are you sure you want to remove all files from your root
directory recursively? This operation will remove all files from the root
directory, any mounted filesystems attached to it and essential operating
system files.
Are you sure you want to proceed? [Y/n]
rm -rf /*
Are you sure you want to remove all files owned by $USER
recursively? This operation will remove all your files on the root
filesystem and any filesystems mounted to it.
Are you sure you want to proceed? [Y/n]
이를 수행하는 스크립트를 작성하는 방법은 무엇입니까?
답변1
rm
-i
파일을 제거하기 전에 매번 묻는 옵션이 있습니다 . 내 생각에 그것은 당신이 원하는 것이 아닌 것 같아요.모든예를 들어 git repo와 같이 반복적으로 삭제하려는 경우 종종 수백 개의 승인이 필요한 파일을 제거하기 전에 시간이 걸립니다.
rm
당신이 원하는 것은 아마도 이와 같이 "대체"하는 간단한 스크립트일 것입니다.
#!/bin/bash
if [ "$(ls -l $1 | wc -l)" = "1" ]; then
rm $1 $@
else
echo "You are going to delete these ($(ls -l $1 | wc -l)) files/directories via shell globbing"
ls $1
read -p "Do you really want to delete these files? [y/n]" yn
if [ $yn = [Yy] ]; then
rm $1 $@
fi
fi
참고: "rm FILE ARGUMENTS"와 같은 스크립트를 사용해야 합니다.
이 스크립트는 쉘 글로빙을 사용하여 둘 이상의 파일(디렉토리)을 선택하는지 확인하지만 파일이 하나만 있는 경우 파일을 제거합니다.