잘못된 이름 바꾸기 명령 후 파일 위치

잘못된 이름 바꾸기 명령 후 파일 위치

초보자입니다... 이름에 점이 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)

관련 정보