물음표로 시작하는 모든 파일 삭제


23

약 4k 파일이있는 폴더가 있습니다. 이 파일 중 일부는 a ?또는 !character로 시작 합니다. 그것들을 삭제해야하지만 그렇게하는 표현식을 찾을 수 없습니다 :

rm -f ./?*

모든 것을 삭제합니다. grepls를 사용 하고 파이프를 통해 xargs파일을 다른 폴더로 옮길 수는 있지만 적절한 방법이 있기를 바랐습니다. ?!파일 모두에 도움이 필요 합니다.

답변:


26

멋진 물건이 필요 없습니다. ?그것이 글로브의 일부로 간주되지 않도록 간단히 탈출하십시오 .

rm -f ./\?*

이것은 또한 작동합니다 !:

rm -f ./\!*

또는 한 번에 실패했습니다.

rm -f ./{\?,\!}*

최신 정보

grep의 결과를 제안하고 있음을 알았습니다 ls. ls의 출력을 구문 분석해서는 안된다는 사실에주의를 기울이고 싶었습니다.


4
@recluze 바보가 아닙니다. 와일드 카드 이스케이프에 대해 모른다면 어떻게해야하는지 분명하지 않습니다.
CVn

@recluze 귀하의 질문에 5 표를 푼 후에도 여전히 바보 같은 느낌이 드십니까? :) 그런데 업데이트 된 답변을 참조하십시오.
Joseph R.

Thanks and thanks :) ... ls 출력의 문제를 알고 있었지만 파일에는 신뢰할 수있는 특정 패턴이 있습니다. 그럼에도 불구하고, 알아두면 좋을 것입니다 :)
5

13

필자의 경우 문자는 실제로 물음표가 아니라 콘솔에 표시 할 수없는 유니 코드 문자였습니다.

사용하는 rm -i *날 위해 일했습니다. 이 작업을 원하지 않으면 http://www.cyberciti.biz/tips/delete-remove-files-with-inode-number.html에 설명 된대로 inode로 삭제할 수도 있습니다 .

inode를 찾으려면 다음을 사용하십시오.

ls -il

그런 다음 수행하십시오.

find . -inum [inode-number] -exec rm -i {} \;
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.