모든 파일에 파일 확장자를 재귀적으로 추가하다
파일 확장자가 없는 파일이 포함된 디렉토리 및 하위 디렉토리가 몇 개 있습니다.추가하고 싶다.jpg
이 디렉토리에 포함된 모든 파일로 이동합니다.파일 확장자를 변경하기 위한 bash 스크립트를 본 적이 있지만 파일 확장자를 하나만 추가하기 위한 스크립트는 아닙니다.재귀적이어야 하는데 누가 좀 도와주시겠어요?
명시적 루프()man find
가 없는 대체 명령어:
find . -type f -exec mv '{}' '{}'.jpg \;
설명: 모든 파일을 재귀적으로 검색합니다(-type f
)는 현재 디렉토리에서 시작합니다(.
move 명령()mv
을 적용합니다.또, 주위의 견적도 주의해 주세요.{}
공백이 있는 파일 이름(새 행도 포함)이 올바르게 처리되도록 합니다.
확장자가 없는 파일이 검색되어 .jpg가 추가됩니다.
find /path -type f -not -name "*.*" -exec mv "{}" "{}".jpg \;
조금 늦었지만, 지금까지의 솔루션보다 더 좋은 솔루션(읽기 어려울 수도 있지만)을 추가하려고 합니다.
find /path -type f -not -name "*.*" -print0 | xargs -0 rename 's/(.)$/$1.jpg/'
사용방법find | xargs
일반적으로 패턴은 각 파일에 대해 새로운 프로세스를 분리할 필요가 없기 때문에 보다 효율적으로 실행됩니다.
이를 위해서는 기존의 이름이 아닌 데비안 맛 디스트로(일명 프리네임)에서 볼 수 있는 이름의 버전이 필요합니다.다만, 이것은 작은 perl 스크립트이기 때문에, 어느 시스템에서도 상기의 커맨드를 사용할 수 있습니다.
이것처럼.
for f in $(find . -type f); do mv $f ${f}.jpg; done
공백으로 구분된 파일 이름이 있을 거라 생각하지 않습니다.
이 경우 이름을 좀 처리해야 합니다.
다른 디렉토리에서 명령을 실행하는 경우
를 교환할 수 있습니다.find .
와 함께find /target/directory
.
Windows Basic에서 확장자가 없는 모든 파일의 이름을 변경하려면 다음을 수행합니다.ren * *.jpg
확장자가 없는 파일이므로 *를 사용하거나 png를 jpg use로 변경하려면ren *.png *.jpg
rename
확장자 없이 파일 이름을 바꿀 수 있을지 확실하지 않습니다(지금 Windows 7을 사용하고 있습니다).
언급URL : https://stackoverflow.com/questions/1108527/recursively-add-file-extension-to-all-files
'it-source' 카테고리의 다른 글
스크립트 기간 동안만 환경변수를 설정하려면 어떻게 해야 합니까? (0) | 2023.04.21 |
---|---|
클래스(스태틱) 변수 및 메서드 (0) | 2023.04.16 |
sql server 개체 이름 - 그러나 테이블이 SSMS 테이블 목록에 나열됩니다. (0) | 2023.04.16 |
WPF 앱을 화면 중앙에 배치하는 방법 (0) | 2023.04.16 |
UNIX 쉘 스크립트의 목록에서 고유 값 또는 고유 값 선택 (0) | 2023.04.16 |