#!/bin/bash # ÇöÀç µð·ºÅ丮¿¡ µé¾î ÀÖ´Â ÆÄÀÏÁß, À̸§¿¡ Á¤»óÀûÀÌÁö ¾ÊÀº ±ÛÀÚ°¡ Æ÷ÇÔµÈ ÆÄÀÏÀ» Áö¿ì±â for filename in * do badname=`echo "$filename" | sed -n /[\+\{\;\"\\\=\?~\(\)\<\>\&\*\|\$]/p` # ÀÌ·± °í¾àÇÑ ±ÛÀÚ¸¦ Æ÷ÇÔÇÏ´Â ÆÄÀϵé: + { ; " \ = ? ~ ( ) < > & * | $ rm $badname 2>/dev/null # ¿¡·¯ ¸Þ¼¼Áö´Â ¹«½Ã. done # ´ÙÀ½Àº ¸ðµç Á¾·ùÀÇ °ø¹é ¹®ÀÚ¸¦ Æ÷ÇÔÇÏ´Â ÆÄÀϵéÀ» ó¸®ÇÏ°Ú½À´Ï´Ù. find . -name "* *" -exec rm -f {} \; # "find"°¡ ãÀº ÆÄÀÏÀ̸§ÀÌ "{}"·Î ¹Ù²ò´Ï´Ù. # '\'¸¦ ½á¼ ';'°¡ ¸í·É¾î ³¡À» ³ªÅ¸³½´Ù´Â ¿ø·¡ÀÇ Àǹ̷ΠÇؼ®µÇ°Ô ÇÕ´Ï´Ù. exit 0 #--------------------------------------------------------------------- # ´ÙÀ½ÀÇ ¸í·É¾îµéÀº À§¿¡¼ "exit"¸¦ Ç߱⠶§¹®¿¡ ½ÇÇàµÇÁö ¾Ê½À´Ï´Ù. # À§ ½ºÅ©¸³Æ®ÀÇ ´Ù¸¥ ¹æ¹ý: find . -name '*[+{;"\\=?~()<>&*|$ ]*' -exec rm -f '{}' \; exit 0 # (Thanks, S.C.)