2016-07-18 2 views
0

사용자가 가정 내에 50 개의 디렉토리를 가지고 있다고 가정 해 보겠습니다. 특정 디렉토리 만 삭제하려고합니다. 삭제할 특정 디렉토리가있는 파일을 만들면 파일의 내용을 기반으로 삭제할 수 있습니까? 우리는 이들을 하나씩 지워야하는 것을 원하지 않으며, 날짜 또는 다른 패턴으로이를 수행 할 수 없습니다.텍스트 파일을 기반으로 디렉토리를 삭제합니다.

+0

시도한 내용은 무엇입니까? – Inian

+1

여기 우리 대다수는 공예품을 개선하는 데 도움을 주지만 기꺼이 짧은 주문을받지 않은 프로그래밍 직원 역할을합니다. 지금까지의 작업을 [MCVE] (http://stackoverflow.com/help/mcve)에서 보여 주신 결과와 기대 한 결과를 보여 주시면 해결하도록 도와 드리겠습니다. – ghoti

+0

나는 이것에 초보적이며, 광범위한 것을 찾는 것이 아니라, 가능하다면 가능한 질문과 가능한 명령을 물었다. 스크립팅에 익숙한 많은 사람들이 다른 사람들의 실제 노력없이 머리 위로 알 수있는 간단한 상황 이었으면합니다. – Matt

답변

0

당신이 유닉스에있는 가정, 및 텍스트 파일은 당신이해야 할 모든이 한 줄에 한 디렉토리에 "DIRS을"이라고 :

cat dirs | xargs rm -rf {\;} 
+0

그건 xargs를 사용하는 방법이 아니에요 ... – 123

3

네, 물론 가능합니다. 다음은 파일 읽기에 대한 예는 다음과 같습니다

#!/bin/bash 
while IFS='' read -r line || [[ -n "$line" ]]; do 
    echo "Text read from file: $line" 
done < "$1" 

IFS=''이 선행 또는

-r 해석하는 백 슬래시을 방지 손질되는 공백을 후행 방지 그것이 외설 경우

|| [[ -n $line ]]는 무시의 마지막 라인을 방지 \n

삭제와 관련하여 원하는대로 에코로 대체 할 수 있습니다.

+0

이것은 매력처럼 작동했습니다, 감사합니다. 설명도 매우 도움이되었습니다. echo 대신에 나는 다음을 사용했다 : rm -R $ line – Matt

0
xargs -r rm -rf <dirs.txt 

여기서 dirs.txt에는 디렉토리 이름이 들어 있습니다.

관련 문제