약 4k 파일이있는 폴더가 있습니다. 이 파일 중 일부는 a ?
또는 !
character로 시작 합니다. 그것들을 삭제해야하지만 그렇게하는 표현식을 찾을 수 없습니다 :
rm -f ./?*
모든 것을 삭제합니다. grep
ls를 사용 하고 파이프를 통해 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 {} \;