특정 확장자를 가진 모든 파일에 접미사를 추가합니다.

특정 확장자를 가진 모든 파일에 접미사를 추가합니다.

suffix/extension 을 가진 모든 파일을 찾는 명령을 작성하세요 .py. 발견된 각 파일에 대해 명령은 .backup파일에 접미사/확장자를 추가해야 합니다 . 따라서 파일 이름이 이면 one.py새 이름은 가 됩니다 one.py.backup.

나는 노력했다

find . / -name "*.py" -type f -exec mv {} {}.backup \;

하지만 작동하지 않습니다

답변1

여기서 작업은 매우 간단하므로 쉘 기반 솔루션도 작동합니다(파일 이름에 문자열 조각을 추가하기만 하면 됩니다).

for file in *.py; do newname="$file.backup"; mv "$file" "$newname"; done

그러한 파일이 존재하지 않을 가능성이 있는 경우 상황을 명시적으로 캡처해야 합니다. 가정적으로 bash다음과 같은 옵션이 있습니다 nullglob.

shopt -s nullglob; for file in *.py; do newname="$file.backup"; mv "$file" "$newname"; done

또는 파일이 존재하는지 명시적으로 테스트합니다.

for file in *.py; do newname="$file.backup"; [ -f "$file" ] && mv "$file" "$newname"; done

문제의 파일이 하위 디렉터리에도 있을 수 있다면 상황은 더 복잡해집니다. v4 부터 bash다음 globstar옵션을 사용할 수 있습니다.

shopt -s globstar; for file in **/*.py; do newname="$file.backup"; mv "$file" "$newname"; done

shopt -s nullglob마찬가지로, 그러한 파일이 존재하지 않는 상황을 해결하기 위해 결합해야 할 수도 있습니다 .

답변2

나는 당신이 다음과 같은 일을 시작할 수 있다고 믿습니다:

> find PATH -name "*.py"

여기서 찾으려는 원하는 폴더 로 PATH변경할 수 있으며 .mvxargs

관련 정보