Unix/Linux/Mac,  컴퓨터와 인터넷

[Shell] 보이지 않는 파일 삭제하기

[ CnUnix ] in KIDS
글 쓴 이(By): paraJ (-디 도-)
날 짜 (Date): 2000년 11월 9일 목요일 오후 09시 20분 44초
제 목(Title): [질문] 파일 지우는 방법..

먼저 솔라리스 2.5.1입니다..ls를 하면 다음과 같이 나옵니다.

TT_DB etc ext4 lost+found platform tmp1
bin export home mnt proc usr
cdrom ext1 kernel mount.sh sbin var
dev ext2 last.txt net tmp vol
xfn ext3 lib opt tmp
~~~~

여기서 위의 tmp는 디렉토리이고 아래의 tmp는 파일인데요.. 이 tmp파일을 지울수가 없습니다..일단 접근이 불가능합니다..
그냥 rm tmp를 하면 그런 파일이 없다고 나옵니다.. 그래서 혹시 뒤에 스페이스 공간이 있는 파일이름 같아서

rm 'tmp '

이런 식으로 해보아도 지울수가 없습니다..위의 ls결과를 보면 원래는 vol밑에 xfn이 나와야 하는데 아무래도 밀려서 dev밑에 나온거 같거던요.. 나와야 할 devices디렉토리는 아예 보이지도 않고.. 지금 디렉토리 tmp는 mv를 사용하여 이름을 바꿀수가 있는 상태입니다.. 물론 잠시 디렉토리 tmp의 이름을 바꾼후 rm tmp해도 tmp 파일을 찾을수 없다고 나옵니다..ls -al 하면 분명히 크기도 있는 파일입니다.. 이 tmp파일 지울수 있는 방법좀 가르쳐주세요..

미리 감사합니다..

[ CnUnix ] in KIDS
글 쓴 이(By): terzeron (microkid)
날 짜 (Date): 2000년 11월 9일 목요일 오후 10시 34분 47초
제 목(Title): Re: [질문] 파일 지우는 방법..

ls -q

옵션을 쓰시면, 또는

ls -b

옵션을 쓰시면 어떤 non-printable 문자가 붙어있는지 확인하실 수 있습니다.

그리고

\rm -i tmp*

로 지우시면 되겠죠. -i는 파일을 지울 때마다 지울 건지 물어보게 하는 옵션입니다.

[ CnUnix ] in KIDS
글 쓴 이(By): paraJ (-디 도-)
날 짜 (Date): 2000년 11월 9일 목요일 오후 11시 06분 15초
제 목(Title): Re: [질문] 파일 지우는 방법..

답변 감사합니다.. 그전에 미리 rm -i *를 해보았는데 안되었거던요.. 그런데 rm -i tmp*했더니 yes/no묻지도 않고 지워졌습니다.. *와 tmp*의 차이점이..

다시 한번 감사드려요..^^

[ CnUnix ] in KIDS
글 쓴 이(By): prince (박성훈)
날 짜 (Date): 2000년 11월 10일 금요일 오전 09시 37분 30초
제 목(Title): Re: [질문] 파일 지우는 방법..

그냥 ls 할 때 -i 옵션으로 inumber 봐 둔 뒤에..

find . -inum <아까봐둔inumber> -exec rm {} \;

정도면 어떨까요?

[ CnUnix ] in KIDS
글 쓴 이(By): control (푸무클)
날 짜 (Date): 2000년 11월 10일 금요일 오전 11시 29분 31초
제 목(Title): Re: [질문] 파일 지우는 방법..

find . -name "*tmp*" -exec rm {} \; 

요거는 어떨까요?
물어보면 필요한거만 지우고, 사정없이 Ctrl+c

^^;

** 아마도 화일이 없다고 나오는것은 white space가 붙어서 그런것 같은데.. 그럴때는 find가 젤루 좋지 않나요? ^^

[ CnUnix ] in KIDS
글 쓴 이(By): paraJ (-디 도-)
날 짜 (Date): 2000년 11월 10일 금요일 오후 05시 11분 01초
제 목(Title): Re: [질문] 파일 지우는 방법..

담부터는 find로 지워야 겠습니다..^^
그런데 첨에 이곳에 글을 올리기 전에

 rm -i *

를 했을때는 안되던 것이

 rm -i tmp*

했을때는 지워지던데요..
*가 당연히 tmp*도 포함하지 않나요?
궁금해서요..^^

[ CnUnix ] in KIDS
글 쓴 이(By): terzeron (microkid)
날 짜 (Date): 2000년 11월 10일 금요일 오후 05시 46분 54초
제 목(Title): Re: [질문] 파일 지우는 방법..

궁금하시다면 다음과 같이 해보세요.

touch tmp^v^b

^은 Ctrl을 의미합니다. 그러니깐 ^v^b는 Ctrl-v Ctrl-b를 연속으로 누르라는 뜻인데, 이러면 tmp뒤에 Ctrl-b가 붙은 파일이 생성됩니다.

ls -l tmp?*

해보면

-rw-r–r– 1 terzeron staff 0 Nov 10 17:37 tmp

요로코롬 나옵니다. 그니깐 겉으로 보기엔 말짱한 파일인 거죠. 이제 지울 때에는

\rm

으로 지웁니다. 제가 rm앞에 \를 붙인 이유는 rm이 다른 걸로 alias되어 있을 수 있기 때문입니다.(\는 alias방지)

\rm -i *

하면

\rm -i tmp*

를 포함한 효과 맞습니다.

그리고 제가 tcsh과 bash에서 모두 테스트해봤지만, tmp^b가 안 걸릴 이유가 없습니다. 아마 놓치셨겠죠.

제일 안전한 방법으로 다음과 같은 명령을 추천하죠.

\rm -i tmp?*

tmp라는 문자열 뒤에 최소한 1글자가 더 붙어있는 것만 인터랙티브하게 지우는 거죠. 한 번 지워보세요.

[ CnUnix ] in KIDS
글 쓴 이(By): paraJ (-디 도-)
날 짜 (Date): 2000년 11월 10일 금요일 오후 08시 52분 52초
제 목(Title): Re: [질문] 파일 지우는 방법..

자꾸 귀찮게 해서 죄송합니다..

그런데 첨에는 분명히

rm -i *

했을때 위의 이상한 tmp라는 파일은 나타나지 않았습니다..저도 신기해서 여러번 해봐거던요.. 또한 touch를 이용해서 이상하게 파일명을 주어서 만들어 보았죠.. 그때마다 제가 만든 파일(님이 말씀하신 방법등)은

rm -i *

했을때 지울것인지 말것인지 나왔는데 위의 tmp파일만 나오지 않아서 이곳에 도움을 청하게 된것입니다.. 그런데 혹시나 하고

rm -i tmp*

를 했더니 yes/no를 묻지도 않고 지워졌습니다..그래서 혹시나 하고
* 와 tmp*가 차이가 있는지 묻게 된것이지요..지금은 그 이상한 파일을 지워서 속은 시원하지만 아직도 어떻게 생성이 된 파일인지(즉 *에도 걸리지 않는) 몰라서 그것이 답답합니다..

[CnUnix ] in KIDS
글 쓴 이(By): Gizmos ( 그림이)
날 짜 (Date): 2000년 11월 11일 토요일 오전 01시 18분 09초
제 목(Title): Re: [질문] 파일 지우는 방법..

\rm -i *

했을 때 tmp가 안 나온 것은 디렉토리 tmp라고 생각하신 것 아닌가요? tmp가 한 번만 나왔다면…정말 이상한데… 🙁

[ CnUnix ] in KIDS
글 쓴 이(By): chilly (젊은엉아)
날 짜 (Date): 2000년 11월 12일 일요일 오후 08시 25분 33초
제 목(Title): Re: [질문] 파일 지우는 방법..

그리고 rm -i했는데 묻지도 않고 지워졌다는 것도 이상하구요. ls한 결과를 보면 파일이름에 newline character가 들어있었던 것같은데.. tmp*가 shell에 의해 풀리면서 yes를 넣어주는 sequence 가 숨어들어간 듯 합니다만..

rm -i tmp?? <

뭐 이런 식으로 말이죠. 이상하여라.

답글 남기기