이중 하이픈으로 시작하는 파일을 제거하는 방법은 무엇입니까?
내 Unix 컴퓨터에 다음으로 시작하는 파일이 있습니다.
--
예 : --testings.html
제거하려고하면 다음 오류가 발생합니다.
cb0$ rm --testings.html
rm: illegal option -- -
usage: rm [-f | -i] [-dPRrvW] file ...
unlink file
나는 시도했다
rm "--testings.html" || rm '--testings.html'
그러나 아무것도 작동하지 않습니다.
터미널에서 이러한 파일을 제거하려면 어떻게해야합니까?
rm -- --testings.html
이 --옵션은 rm에게 모든 추가 인수를 옵션이 아닌 파일 이름으로 처리하도록 지시 -합니다.
이것은 rm 명령에만 국한되지 않습니다. getopt 함수가이를 구현하고 많은 (모두?) UNIX 스타일 명령이 동일한 방식으로 --처리합니다. 옵션 처리를 종료하고 그 이후의 모든 것은 일반 인수입니다.
http://www.gnu.org/software/hello/manual/libc/Using-Getopt.html#Using-Getopt
rm -- --somefile
작동하는 동안 rm옵션을 구문 분석하기 위해 getopts를 사용 하는 솔루션입니다 . 자체적으로 구문 분석을 수행하고 이에 대해 토하는 응용 프로그램이 있습니다 ( " --옵션의 끝"논리를 반드시 구현할 필요는 없기 때문입니다 ).
그렇기 때문에 두개골을 통해 운전해야 할 해결책은 다음과 같습니다.
rm ./--somefile
이렇게하면 인수가 -.
게다가 정말 괜찮은 쉘 스크립트를 만들려고한다면; ./펑키 한 파일 이름 입력으로 인해 스크립트가 손상되는 것을 방지하기 위해 기술적으로 모든 파일 이름 매개 변수 확장 앞에 넣어야합니다 (또는해서는 안되는 작업을 수행하기 위해 스크립트가 남용 / 악용되는 것을 방지합니다. 예를 들어, rm파일을 삭제합니다). 그러나 디렉토리는 건너 뛰고 rm -rf *모든 것을 삭제합니다. " -rf" 의 파일 이름을 스크립트에 전달하거나 누군가 touch ~victim/-rf가 이런 식으로 동작을 변경하는 데 사용될 수 있습니다.
어느 rm -- --testings.html나 rm ./--testings.html.
rm -- --testings.html
또 다른 방법은 find ... -name "-*"-delete를 사용하는 것입니다.
touch -- --file
find -x . -mindepth 1 -maxdepth 1 -name "--*" -delete
파일 이름에 불가능한 문자가 포함 된 파일을 삭제하는보다 일반적인 접근 방식은 파일의 inode를 사용하는 것입니다.
를 통해 얻을 수 있습니다 ls -i.
예 :
$ ls -lai | grep -i test
452998712 -rw-r--r-- 1 dim dim 6 2009-05-22 21:50 --testings.html
그리고 찾기의 도움으로 그것을 지우려면 :
$ find ./ -inum 452998712 -exec rm \{\} \;
이 프로세스는 쉽게 스크립팅 할 수 있기 때문에 파일 이름 특성이 많은 파일을 다룰 때 유용 할 수 있습니다.
rm ./--testings.html
또는
rm -- --testings.html
참고 URL : https://stackoverflow.com/questions/706196/how-to-remove-files-starting-with-double-hyphen
'Nice programing' 카테고리의 다른 글
| 동적으로 이미지 추가 React Webpack (0) | 2020.11.14 |
|---|---|
| Google Cloud Platform 프로젝트의 이름은 어떻게 변경하나요? (0) | 2020.11.14 |
| Google 크롬에서 jsfiddle.net의 자바 스크립트 검사 (0) | 2020.11.12 |
| Mongoose / Node.js에서 여러 문서를 동시에 저장하려면 어떻게해야합니까? (0) | 2020.11.12 |
| CMake가 C ++로 링커 언어를 결정할 수 없습니다. (0) | 2020.11.12 |