[unix] 디렉토리가 있는지 확인하고 하나의 명령으로 삭제하십시오.

Unix에서 단일 명령을 사용하여 디렉토리가 있는지 확인하고 삭제할 수 있습니까? 원격 시스템에서 단일 명령 만 실행할 수있는 ANT ‘sshexec’작업을 사용하는 상황이 있습니다. 그리고 디렉토리가 있는지 확인하고 삭제해야합니다 …



답변

$WORKING_DIR디렉토리에 설정되어 있다고 가정하면 …이 한 줄짜리가해야합니다.

if [ -d "$WORKING_DIR" ]; then rm -Rf $WORKING_DIR; fi

(그렇지 않으면 디렉토리로 바꾸십시오)


답변

왜 그냥 사용하지 rm -rf /some/dir않습니까? 디렉토리가 있으면 제거하고 그렇지 않으면 아무 작업도 수행하지 않습니다. rm -r /some/dir이 유형의 명령 과 달리 폴더가 존재하지 않으면 충돌하지 않습니다.


답변

시험:

bash -c '[ -d my_mystery_dirname ] && run_this_command'

편집 : 원격 컴퓨터에서 bash를 실행할 수 있으면 작동합니다 ….

편집 2 : bash에서 [ -d something ]‘something’이라는 디렉토리가 있는지 확인하고 존재하고 디렉토리이면 성공 코드를 반환합니다. &&로 명령을 연결하면 첫 번째 명령이 성공한 경우에만 두 번째 명령이 실행됩니다. 따라서 [ -d somedir ] && command디렉토리가있는 경우에만 명령을 실행합니다.


답변

다음은 또 다른 라이너입니다.

[[ -d /tmp/test ]] && rm -r /tmp/test
  • &&는 이전 명령문이 성공적으로 실행 된 경우에만 다음 명령문을 실행 함을 의미합니다 (종료 코드 0 반환).

답변