/Dir2
에 존재하지 않는 /Dir1
에서 파일을 삭제하려고합니다. 문제는 처음 몇 문자가 일치하지만 마지막 몇 문자는 일치하지 않는다는 것입니다. 예를 들어.끝 문자가 일치하지 않으면 파일 삭제
/Dir1
abc_def.png
xyz_xyz.png
/Dir2
abc_ghi.png
"abc"가 일치하는 한 마지막 몇 문자가 다르더라도 파일을 삭제하고 싶지 않습니다. 삭제하려는 유일한 파일은 /Dir2
에 없기 때문에 xyz.png
입니다. 이 일을 어떻게 하죠? rm
전에 echo
을 제거,
cd /Dir1
for f in *_*; do
[[ -f /Dir2/"${f%%_*}"* ]] || echo rm "$f"
done
일단 만족 :
'/ Dir2'에'ghi_abc.png' 파일이 대신 있다면 어떨까요? '/ Dir1'의'abc_def.png'는 삭제되지 않습니까? –
정확합니다. 삭제되지 않습니다. 처음 세 글자에 의존하고 싶습니다. – kkd92
'/ Dir1'에있는 파일의 밑줄 앞에서 파일 이름의 처음 부분에 종속 되나요? –