답변:
실행하고 싶다고 가정 해보십시오.
rm *.txt
당신은 그냥 실행할 수 있습니다 :
echo rm *.txt
또는 심지어 :
echo *.txt
rm
셸이 *.txt
아닌을 확장하기 때문에 어떤 파일 을 삭제 할지 확인하십시오 rm
.
도움이되지 않는 유일한 시간은입니다 rm -r
.
당신이 반복적으로 파일과 디렉토리를 제거하려면, 당신은 사용할 수있는 find
대신에 rm -r
, 예를 들어,
find . -name "*.txt" -print
당신이 원하는 것을 다음 경우에는 변경 -print
에를 -delete
:
find . -name "*.txt" -delete
tree
.
find . -name "*.txt" -delete
재귀 적 인 것처럼 보이지 않습니다. 모든 파일을 제거했지만 다음에 나열된 디렉토리는 제거하지 않았습니다.-print
find . -type d -empty -delete
find
파일이 여전히 포함 된 디렉토리는 삭제하지 않습니다 ( rm dir/
없는 파일과 동일 -r
). 먼저 디렉토리를 비우거나 적절한 옵션과 함께 사용 find
하여 -exec rm
이를 수행해야합니다. 예find . -depth -name "*.txt" -exec rm -r {} +
echo rm *.txt
방법을 사용하면 단점이있는 것 같습니다. 결과는 세로 목록이 아닌 연결된 목록 (이전 파일 뒤에 하나의 파일이있는 긴 문자열)으로 표시됩니다. 출력을 세로 목록 (한 줄에 한 파일)으로 표시 할 수있는 방법이 있습니까? (업데이트 :이 find
방법은 내가 요청한 것을 수행한다는 것을 알았습니다. 그래서 나는 그것으로 실행할 것입니다.)
당신은 말할 수 있습니다 :
rm -i
대화식 모드에서 실행하려면 rm
각 파일을 삭제할지 묻는 메시지가 표시됩니다. 각 파일에 대해 no로 답하여 영향을받는 파일을 확인할 수 있습니다.
다음에 ls
의해 제거 될 모든 파일을 나열 하는 데 사용할 수 있습니다 rm
.
ls ../path/*.txt
재귀로 삭제 될 파일을 보려면 목록을 작성해야하는 경우 rm
다음 -R
플래그 를 사용하십시오 ls
.
ls -R ../path/*.txt
ls */*/*.txt
-R
옵션을 선택합니다.