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 반환).
답변
