삭제하고 싶은 파일의 이름을 파일에 나열해 놓았습니다. rm
파일을 하나씩 삭제하도록 명령 에 파일을 전달하려면 어떻게 해야 합니까 ?
답변1
한 줄에 하나의 파일이 있는 경우 한 가지 접근 방식은 다음과 같습니다.
tr '\n' '\0' < list_of_files_to_be_deleted.txt | xargs -0 -r rm --
파일 목록은 tr
파일 구분 기호를 개행에서 널 바이트로 변경하는 명령에 대한 입력으로 제공되며, 명령은 xargs
입력에서 널 바이트로 구분된 파일을 읽고 인수로 추가된 파일을 사용하여 rm 명령을 시작합니다.
답변2
위의 대답은 공백과 "이상한 문자"가 있는 파일 이름을 처리하는 데 최선을 다하기 때문에 좋습니다. 그러나 파일 이름이 정상인 경우 가장 쉬운 방법은 다음과 같습니다(경고, 부끄러운 일입니다!).
rm $(< /the/file/with/names)
일반 쉘의 경우:
rm `cat /the/file/with/names`