저는 Red Hat 7.3을 사용하고 있습니다.
입력할 때 모든 파일 이름에서 이를 제거 rename * *.log *
하고 싶습니다 .log
나에게는 이런 일이 일어나지 않았습니다. 간단히 말해서 파일이 사라지고 있는 것 같습니다.
답변1
rename
시스템에 어떤 프로그램이 있는지 에 따라 다릅니다 (RHEL 프로그램이 기억나지 않습니다). 의 경우유틸리티 리눅스 이름 바꾸기, 첫 번째 파일의 이름을 두 번째 파일로 바꿀 수 있습니다. 여기에 문제가 있습니다. (명확성을 위해 여기서는 해당 내용을 사용하겠습니다 rename.ul
.)
세 개의 파일에 대해 명령 을 내리면 a.log
쉘 은 glob을 확장하고 최종 명령 실행은 다음과 같습니다.b.log
c.log
rename.ul * *.log *
rename.ul a.log b.log c.log a.log b.log c.log a.log b.log c.log
이제 rename
처음 두 개를 패턴과 교체로 가져와 나머지 매개변수로 명명된 파일에 적용합니다. 따라서 기본적 으로 명령 은 a.log
모든 b.log
.c.log a.log b.log c.log a.log b.log c.log
a.log
b.log
다음 a.log
목록.
당신이라면 어떨까요 rename
?펄 이름 바꾸기( prename
) 대신 첫 번째 파일 이름이 유효한 Perl 명령이 아닐 수 있으므로 오류가 발생하고 아무 일도 일어나지 않을 수 있습니다. prename
파일은 기본적으로 덮어쓰여지지 않습니다.
util-linux를 통해 이름을 바꾸고 .log
사용할 수 있는 파일 이름에서 제거합니다.
$ rename.ul .log "" *.log
그러면 이름 중간에 있는 일치 항목도 변경되므로 v.logger
가 됩니다 vger
.
Perl을 통해 이름을 바꾸려면 명령은 다음과 같습니다.
$ prename 's/\.log$//' *.log