읽기 전용 디렉터리를 실행 rm -rf dir
하고 dir
포함하면 해당 디렉터리의 파일을 삭제할 수 없습니다.
우선 rm
이 디렉토리를 인식하고 쓸 수 있게 만드는 방법이 있습니까 ?chmod
먼저 할 수도 있지만 chmod -R o+w dir
필요할 때만 하는 것보다는 속도가 느릴 것입니다.
답변1
우선
rm
이 디렉토리를 인식하고 쓸 수 있게 만드는 방법이 있습니까 ?chmod
이 rm
명령을 사용하려면 디렉터리에서 파일과 디렉터리를 삭제하기 위해 디렉터리에 대한 쓰기 권한이 필요합니다.
당신의 선택은
- 쓸 수 없는 디렉터리에 쓸 수 있도록 권한 수정(
chmod -R u=rwx {toplevel_directory}; rm -rf {toplevel_directory}
) - 암시적 쓰기 액세스 권한을 얻으려면 루트 권한을 사용하십시오(실제로 권장되지는 않습니다
sudo rm -rf {toplevel_directory}
).
rm
속도 최적화에 많은 관심을 갖고 있다면 첫 번째 실패 시에만 재시도하는 스크립트나 함수를 작성할 수 있습니다 .
rm-rf() {
local item rs=0 ss=0
for item in "$@"
do
if [ -e "$item" ]
then
rm -rf "$item"
rs=$?
if [ $rs -gt 0 ]
then
# Try again
chmod -R u=rwx "$item" 2>/dev/null
rm -rf "$item" 2>/dev/null && rs=0
fi
[ $rs -eq 0 ] && echo "Removed: $item" >&2
else
echo "Skipping: $item" >&2
rs=1
fi
# Count the number of failed arguments
[ $rs -gt 0 ] && ((ss++))
done
return $ss
}