4
제가 작업하고있는 스크립트에서 rm -rf
폴더 계층 구조를 원합니다. 그러나 그렇게하기 전에 프로세스가 성공적으로 완료 될 수 있는지 확인하고 싶습니다. (더 읽기, 짧은, 신뢰성 등) 더 나은 솔루션이있을 수 있습니다 경우 지금은 궁금하네요폴더 계층 구조에 대한 삭제/쓰기 권한을 올바르게 검사하려면 어떻게합니까?
#!/bin/bash
set -o nounset
set -o errexit
BASE=$1
# Check if we can delete the target base folder
echo -n "Testing write permissions in $BASE..."
if ! find $BASE \(-exec test -w {} \; -o \(-exec echo {} \; -quit \) \) | xargs -I {} bash -c "if [ -n "{}" ]; then echo Failed\!; echo {} is not writable\!; exit 1; fi"; then
exit 1
fi
echo "Succeeded"
rm -rf $BASE
: 그래서,이게 내가 해낸 방법이다.
수표와 실제 제거 사이에 파일 액세스 권한이 변경 될 수 있다는 사실을 충분히 알고 있습니다. 내 유스 케이스에서는 받아 들일 수있다. 그러나 이것을 피할 수있는 방법이 있다면, 어떻게하는지 알고 싶습니다.
아니요, 아닙니다. 힌트를 가져 주셔서 감사합니다. 나는 그것을 고려할 것이다. –
좋아, 포기한다. 테스트를 올바르게 반전하려면 어떻게해야합니까? 귀하의 예는 쓰기 권한이있는 모든 파일을 나열합니다. 쓰기 권한이없는 모든 파일을 어떻게 나열합니까? 나는 그것을 작동시킬 수 없다. '찾는다. ! -perm -u + w'는 아무것도 표시하지 않고, 원래의 방법은 수많은 파일을 나열합니다. –
그냥'! -perm/u + w' – fge