파일의 파일 이름 목록에 대해 명령을 실행하는 방법은 무엇입니까?

파일의 파일 이름 목록에 대해 명령을 실행하는 방법은 무엇입니까?

삭제하고 싶은 파일의 이름을 파일에 나열해 놓았습니다. 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`

관련 정보