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
변경할 수 있으며 .mv
xargs