실수로 라는 파일을 만들었습니다.
> option[value='2016']
어떻게 삭제할 수 있나요?
My attempts:
$ rm "> option[value='2016']"
rm: cannot remove ‘> option[value='2016']’: No such file or directory
$ rm \> o*
rm: cannot remove ‘>’: No such file or directory
rm: cannot remove ‘o*’: No such file or directory
$ rm `> o*`
rm: missing operand
Try 'rm --help' for more information.
$ rm \> option*
rm: cannot remove ‘>’: No such file or directory
rm: cannot remove ‘option*’: No such file or directory
$ rm '\> option*'
rm: cannot remove ‘\\> option*’: No such file or directory
$
$ rm "\> option*"
rm: cannot remove ‘\\> option*’: No such file or directory
문서 목록:
HAPPY_PLUS_OPTIONS/
o*
op*
> option[value='2016']
> option[value='ALFA ROMEO']
README.md
rspec_conversions/
.rubocop.yml
SAD/
SAD_PLUS_OPTIONS/
답변1
다른 옵션
ls -i
주어진 (적절한 inode 값으로)
5233 > option[value='2016'] 5689 foo
그 다음에
find . -inum 5233 -delete
선택사항(미리보기)
find . -inum 5233 -print
-xdev
아래에 다른 파일 시스템이 있는 경우 추가할 수도 있습니다.
답변2
man에 따르면 "--" 옵션을 사용할 수도 있습니다.
The rm command uses getopt(3) to parse its arguments, which allows it to
accept the `--' option which will cause it to stop processing flag options at
that point. This will allow the removal of file names that begin with a dash
(`-'). For example:
rm -- -filename
그래서 나는 다음을 시도한다:
touch -- "> option[value='2016']"
삭제하세요.
rm -- "> option[value='2016']"
파일 이름이 올바르게 입력되었는지 확인하는 가장 쉬운 방법:
rm -- ">[tab]
그리고 자동 완성 기능이 작업을 수행하도록 하세요.
추신: 들리는 것처럼 "-rf*"라는 파일 이름을 만들지 마십시오. 나쁜 일이 일어날 수 있습니다.
-rw-r--r-- 1 stephan staff 0 Sep 13 14:11 -rf *
안전을 유지하려면 항상 "-i"를 사용하십시오.
iMac:~ stephan$ rm -i -- "-rf *"
remove -rf *? Y
답변3
원래 문제는 선행 공백이었으므로
rm " > option[value='2016']"
^ here
일하다.
> 등으로 시작하는 파일에 관한 질문이 업데이트되었습니다.
답변4
rm
거기에는 마법 같은 것이 전혀 없기 때문입니다 >
. 꺾쇠 괄호가 여기에 도달하는지 확인하기만 하면 됩니다(=셸이 이를 리디렉션으로 해석하지 못하도록 방지).
> "> option[value='2016']" #create it
rm "> option[value='2016']" #remove it
#remove all files in the current directory that have > in them
rm -- {,.}*\>*
합리적인 최신 시스템을 사용한다면 탭 완성을 통해 적절하게 이스케이프된 이름을 얻을 수 있어야 합니다.