이름 바꾸기 명령 후 파일 위치가 잘못되었습니다.

이름 바꾸기 명령 후 파일 위치가 잘못되었습니다.

초보자입니다... 이름에 점이 2개 있는 파일 이름을 다음을 사용하여 단일 점으로 변경하려고 합니다.

rename 's/.././' filename

파일은 사라졌지만 메모리에는 여전히 같은 양의 공간이 남아 있기 때문에 삭제된 것 같지 않습니다. 파일은 어디로 전송되나요?

답변1

이제 파일을 호출합니다 .lename.

(파일이 filename이전에 호출되었다고 가정하면 "실제" 파일의 이름은 다를 것입니다. 그러나 파일 호출 방법에 관계없이 처음 두 문자는 대체되었습니다 ..)

이는 정규식의 점이 다음과 같기 때문입니다.특수 문자중요성임의의 문자와 일치. 그래서 ..그것은 임의의 두 문자입니다. rename추가하지 않으면 첫 번째 항목만 교체되기 때문에글로벌수정자( g), 해당 파일 이름의 처음 두 문자가 대체되었습니다.

여기서 "교체"에 유의하세요.s/regex/replacement/modifiers정규 표현식이 아니므로 .표현식의 오른쪽이 s/.././예상대로 작동합니다.


이제 파일은 어디에 있습니까?

a로 시작하는 파일은 .숨김 파일입니다. 따라서 를 실행하면 해당 항목이 표시되지 않습니다 ls. 이 파일을 표시하려면 실행하세요 ls -a.

다음을 사용하여 파일 이름을 바꾸십시오.mv .lename filename


다음에는 정규식 관련 문자를 이스케이프하세요.

rename 's/\.\././' filename

또한 rename -n ...실제 이름 바꾸기를 수행하기 전에 시험 실행을 수행하고 결과를 확인할 수 있습니다. 그러면 다음과 같은 내용이 표시됩니다.

rename(filename, .lename)

관련 정보