파일목록을 표준입력 받아 rm 으로 지우기

qkeko의 이미지

a 디렉의 파일을 모두 포함한 b 디렉에서 a 디렉의 파일만을 골라 일괄로 지우고자 합니다. (a < b)

a 디렉의 파일목록을 담은 del.txt를 가지고 b 디렉에 중복된 a 디렉의 파일을 일괄로 지우는 법을 알고 싶습니다.

rm 에게 이 del.txt 를 어떻게 표준입력으로 넘겨줄 수 있는 지 좀 알려주세요.

progcom의 이미지

rm `cat del.txt | xargs`

cinsk의 이미지

Prentice의 이미지

수가 적다면
for I in `cat del.txt` ; do echo rm "$I" ; done

잘 작동한다면
for I in `cat del.txt` ; do rm "$I" ; done

azirael의 이미지

for i in `ls -1 a`; do
rm -f "b/$i"
done

될라나...
테스트해보시고.[/code]

qkeko의 이미지

도와주신 여러 님들께 감사 말씀드립니다.
건강하시구요. 행복한 봄 되시길 바랍니다.

#!/bin/bash

cd a
find . -type f -print | sort > /tmp/del.txt
mv /tmp/del.txt ../b
cd ../b
for I in `cat del.txt` ; do rm "$I" ; done
rm ./del.txt
익명 사용자의 이미지

qkeko wrote:
도와주신 여러 님들께 감사 말씀드립니다.
건강하시구요. 행복한 봄 되시길 바랍니다.
#!/bin/bash

cd a
find . -type f -print | sort > /tmp/del.txt
mv /tmp/del.txt ../b
cd ../b
for I in `cat del.txt` ; do rm "$I" ; done
rm ./del.txt

find . -type f -exec rm ../b/{} \;