RHEL 7 서버에서 파일을 찾고 이름을 바꾸는 방법은 무엇입니까? 명령어 하나로 가능할까요?
예를 들어 다음과 같이 할 수 있습니다.
find . -name filename
그런 cd
다음 디렉토리로 이동한 mv filename.conf filename2.conf
다음 한 줄로 모두 수행하고 싶습니다.
답변1
이 플래그를 사용할 수 있습니다 execdir
.
find . -type f -name <original_file_name> -execdir mv {} <new_file_name> \;
답변2
file.conf
이름 을 로 바꾸려면 다음 옵션을 file2.conf
사용하십시오 .find
-exec
find . -name "*.conf" -type f -exec sh -c 'mv "$1" "${1%.conf}2.conf"' sh {} \;
각 파일 이름은 명령 실행을 위한 옵션으로 시작되는 새 셸 프로세스에 {}
인수로 전달됩니다 .$1
-exec
mv
${1%.conf}
셸 매개변수 확장이며.conf
파일 이름에서 접미사를 제거합니다.2.conf
파일 이름에 새 접미사 추가
명령을 실행하기 전에 테스트하려면 echo
다음과 같이 추가하십시오.
find . -name "*.conf" -type f -exec sh -c 'echo mv "$1" "${1%.conf}2.conf"' sh {} \;