물음표로 시작하는 모든 파일 삭제 없습니다 : rm -f

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

rm -f ./?*

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



답변

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

rm -f ./\?*

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

rm -f ./\!*

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

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

최신 정보

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


답변

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

사용하는 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 {} \;