문제

Ok,I have been working with Solaris10 년,그리고 이것을 결코 보지 않았...

나는 디렉토리 목록이 모두 포함하는 파일과 하위디렉토리와 동일한 이름:

-rw-r--r--   1 root     other    15922214 Nov 29  2006 msheehan
drwxrwxrwx  12 msheehan sysadmin    2048 Mar 25 15:39 msheehan

내가 사용하는 파일을 발견하는 내용의 파일을 얻을:

bash-2.03# file msheehan
msheehan:       directory
bash-2.03# file msh*
msheehan:      ascii text
msheehan:       directory

나는에 대해 걱정하지 않 파일이 있지만,나는 유지하려는 디렉토리,그래서 나는 시 rm:

bash-2.03# rm msheehan
rm: msheehan is a directory

그래서 여기 나는 두 부분 질문:

  1. 무슨 일이?
  2. 나는 어떻게 삭제합니까?

요나단

편집:감사에 대한 답변 사람 모두,(지금까지)에 도움이 되었지만,배관의 목록을 편집합,ala:

bash-2.03# ls -l > jb.txt
bash-2.03# vi jb.txt

는 포함되:

-rw-r--r--   1 root     other    15922214 Nov 29  2006 msheehab^?n
drwxrwxrwx  12 msheehan sysadmin    2048 Mar 25 15:39 msheehan

항상 조심이!

도움이 되었습니까?

해결책

내가 생각했던 것과 이러한 사실은 두 개의 서로 다른 파일 이름에는"보기"같은 명령으로 파일을 구별할 수 있었을 때 전달되는 확장된 버전의 이름을습니다.도 배관 ls 로 od 또는 다른 육/octal 덤프 유틸리티를 보면 그들은 정말 동일한 이름이있는 경우 인쇄되지 않는 문자를 참여.

다른 팁

내가 무엇인지 궁금할 수 없습니다.고객께서 파일 시스템 버그,그것에 의해 발생할 수 있는 비-ascii chararacter 는 것을 통해 얻었습니다.는 경우,다른 언어를 사용으로 쉽게 문자열이 의미가 작업을 수행한다.

그것은 흥미로운 일이 될 것입니다 무엇을 볼 것 출력이 이 루비 snippet:

ruby -e 'puts Dir["msheehan*"].inspect'

삭제할 수 있습을 사용하여 아이노드

당신이 사용하는 경우"-i"옵션"ls"

$ ls -li
total 1
20801 -rw-r--r-- 1 root root 0 2010-11-08 01:55 a?
20802 -rw-r--r-- 1 root root 0 2010-11-08 01:55 a\?
$ find . -inum 20802 -exec rm {} \;
$ ls -li
total 1
20801 -rw-r--r-- 1 root root 0 2010-11-08 01:55 a?

나는 예에서(스페인어)할 수 있는 방법을 사용하여 파일을 삭제한 다음에 iNode Solaris http://sparcki.blogspot.com/2010/03/como-eliminar-archivos-utilizando-su.html

Urko,

와 빠른 응답이 제 2 부의 내 자신의 질문을...

내가 상상으로 변경할 수 있습 디렉토리,파일이 삭제,이름 바꾸기 디렉토리에 다시는 그것의 원래 다시합니다.

...나는 여전히 관심이 무엇을 보고 다른 사람들 같습니다.

JB

나는 그들 중 하나는 캐릭터에서 이름입니다.당신이 시도할 수 있습 셸을 사용하는 와일드카드 확장을 보는:유형

cat msh*

누릅 와일드카드 확장 키(에 포탄은 그것의 Ctrl-X*).을 얻어야 한 두 가지 이름을 나열하는,아마도 하나의 이스케이프 문자가에 있습니다.

가 있는지 확인하기 위해 특수 문자 파일에서도-b-q 옵션은 ls, 가정 solaris8 는 옵션이 있습니다.

로 다른 솔루션을 삭제한 파일을 가져올 수 있습니다 그래픽 파일을 브라우저 (말하다!) 와 드래그 앤 드롭을 원치 않는 파일을 쓰레기입니다.

다른 솔루션을 수 있습을 이동하는 하나의 파일을 다른 이름(중 하나 없이 알 수 없는 특별한 문자)을 삭제 후 특수 문자 디렉토리의 이름으로 와일드카드.

mv msheehan temp
rm mshee*
mv temp msheehan

물론 당신이 원하는 수만 있는지 확인 파일이 삭제할과 일치하는 와일드 카드가 있습니다.고,특정한 경우,이후 하나 디렉토리와 다른 파일은 이 명령할 수 있는 해 모든 것:

rmdir msheeha*

한 빠르고 쉬운 방법을 참조하는 인쇄되지 않는 문자를 공백이 파이프를 통해 출력 고양이의 수의사, 예:

# ls -l | cat -vet

을 기억합니다!

2 부,이후 하나의 이름을 담고 두 문자를 추가로 사용할 수 있습니다:

mv sheehan abc
mv sheeha??n xyz

당신이 그 일을 한 후에,당신이 가지고 온건한 파일 이름을 다시 문제를 해결할 수 있는 방법으로 당신은 필요합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top