폴더, 하위 폴더 및 여러 파일에서 반복적으로 찾기 및 이름 바꾸기

Megasa3

저는 shellscript를 처음 사용하고 필요한 작업을 수행하는 데 문제가 있습니다.

모든 * .png 이미지를 '최적화'하고 싶고 이것을 찾았 으므로 다음같이 bash를 만들었습니다.

#!/bin/bash    
 pngnq -vf -s1 *.png    
 rename -nq8.png .png *-nq8*     
 optipng -o7 *.png

이것이하는 일은 :

  • pngnq -vf -s1 *.png * png ofr 예제 Image.png를 가져와 최적화 된 Image-nq8.png라는 복사본을 craetes
  • rename -nq8.png .png *-nq8*Image-nq8.png를 Image.png로 만들어 이전과 동일하지만 최적화되도록합니다 (따라서 최적화 이전과 동일하게 폴더에있을 수 있음) <= 매우 중요!
  • optipng -o7 *.png 사본을 만들지 않고 Images.png에 또 다른 최적화를 수행합니다.

하지만 이제 문제가 있습니다.

콘솔에서 모든 줄을 순서대로 작성하면 폴더에서 정상적으로 작동하지만 이제 자동으로 재귀 적으로 수행해야합니다. 내 경우를 설명합니다.

참고 : 폴더를 디렉토리라고합니다.

ImagesFolder라는 폴더가 있고 내부에는 * .png가 더 많은 다른 폴더가 있으며 ImagesFolder의 모든 하위 폴더 에서이 bash를 실행하고 싶지만 어떻게 해야할지 모르겠습니다 (유닉스에서 새로 왔으며 shellscripts 등) 및 인터넷에서 찾은 결과가 작동하지 않거나 완전히 엉망이었습니다 ...

내가 가진 것을 더 잘 이해하려면 다음과 같습니다.

ImagesFolder
  |-Folder1
  |     |- Folder12
  |     |      |-20 images here
  |     |- Folder13
  |     |      |- 10 images more here
  |     |-  _Folder <- I have some folder names that start with '_'
  |     |- 5 images here 
  |-more images and folders and subfoldrs

이것은 구조이며 스크립트가 ImagesFolder에서 실행되기를 원합니다.

나는 for와 find로 시도했고, 콘솔에서 스크립트를 호출하는 찾기로 시도했습니다 ... 여기 스택에서 찾은 몇 가지 예제를 너무 적용하려고 시도했지만 아무것도 없었습니다 ... 아마도 내가 실제로 어떻게하는지 모르기 때문에 이 작품은 그렇게 적용 할 수 없습니다. 이 문제로 나를 도울 수 있기를 바랍니다.

정말 고맙습니다!

편집 : 스크립트를 실행하려면 ImageFolder로 이동하여 콘솔을 열고 chmod u+x name_of_my_script하위 폴더에 실행하는 것이 문제가 될 수 있습니까? 그렇다면 문제를 해결하는 방법을 알려주시겠습니까?

AB

bash 스크립트 :

새 파일 find_and_rename을 만들고 다음 줄을 추가합니다.

  • 버전 replace

    #!/bin/bash
    shopt -s globstar
    for f in **/*png; do 
        pngnq -vf -s1 "$f"
    
        # Uncomment the line below for a test run
        # rename -v -n 's/^(.*)\-nq8(.*)/$1$2/' "$f"
    
        # Comment the line below out for a test run
        rename -v 's/^(.*)\-nq8(.*)/$1$2/' "$f"
    
        optipng -o7 "$f"
    done
    
  • 버전 mv

    #!/bin/bash
    shopt -s globstar
    for f in **/*png; do 
        pngnq -vf -s1 "$f"
    
        # Uncomment the line below for a test run
        # echo "$f  => ${f//-nq8/}"
    
        # Comment the line below out for a test run
        mv "$f" "${f//-nq8/}"
    
        optipng -o7 "$f"
    done
    

다음을 사용하여 파일을 실행 가능하게 만드십시오.

chmod +x find_and_rename

폴더로 이동합니다 ImagesFolder.

이 폴더에서 스크립트를 시작하십시오.

<path_to_script>/find_and_rename

예 ( pngnqoptipng

$ find . -type f -name "*.png"
./Image-nq8.png
./sub/Image-nq8.png
./Image2-nq8.png

$ ./find_and_rename 
Image2-nq8.png renamed as Image2.png
Image-nq8.png renamed as Image.png
sub/Image-nq8.png renamed as sub/Image.png

$ find . -type f -name "*.png"
./Image2.png
./sub/Image.png
./Image.png

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

폴더, 하위 폴더 및 여러 파일에서 재귀 적으로 찾기

분류에서Dev

폴더를 무시하고 반복적으로 파일 이름 찾기 및 바꾸기

분류에서Dev

찾기 및 이름 바꾸기를 사용하여 반복적으로 모든 파일과 폴더에 사용자 정의 문자열을 추가합니다.

분류에서Dev

경로에서 폴더 이름 찾기 및 바꾸기

분류에서Dev

일괄. 폴더 및 모든 하위 폴더의 파일 이름 바꾸기

분류에서Dev

여러 파일을 여러 하위 폴더로 삭제, 이름 바꾸기 및 이동하는 배치 파일 만들기

분류에서Dev

재귀 적 이름 바꾸기 파일 및 폴더

분류에서Dev

폴더 및 하위 폴더에서 파일 찾기

분류에서Dev

특수 문자로 파일 및 폴더 이름 바꾸기

분류에서Dev

Android에서 연속 폴더 및 파일 이름 바꾸기

분류에서Dev

배치로 파일 이동 및 하위 폴더 찾아보기

분류에서Dev

일괄 적으로 폴더 및 하위 폴더 만들기

분류에서Dev

Python 3을 사용하여 CSV 파일의 하위 폴더 / TXT에서 찾기 및 바꾸기

분류에서Dev

python 및 os.walk ()를 사용하여 하위 폴더의 파일 이름 바꾸기

분류에서Dev

파일 및 폴더 이름 검색 및 바꾸기

분류에서Dev

.txt imput 파일로 폴더 및 하위 폴더 만들기

분류에서Dev

csv / txt 파일에서 폴더 및 하위 폴더 만들기

분류에서Dev

파일 이름을 기반으로 폴더 생성 및 생성 된 폴더의 하위 폴더로 파일 이동

분류에서Dev

zip 파일 폴더 추출 및 이름 바꾸기

분류에서Dev

Applescript-폴더 복제 후 내부 파일 이름 바꾸기 및 이름 바꾸기

분류에서Dev

폴더 및 하위 폴더에서 특정 파일 유형 찾기

분류에서Dev

Ubuntu 12.04 MNT 및 미디어에서 폴더 이름 바꾸기

분류에서Dev

Ubuntu 12.04 MNT 및 미디어에서 폴더 이름 바꾸기

분류에서Dev

배치 파일-상위 이름 및 (하위) 폴더 이름을 기준으로 파일 이름 변경

분류에서Dev

폴더 및 하위 폴더에서 여러 파일 검색 python

분류에서Dev

증분 폴더 복사 및 이름 바꾸기

분류에서Dev

파일 찾기 및 폴더 이동

분류에서Dev

폴더 찾기 및 이름 바꾸기 Windows Batch

분류에서Dev

파일을 복사하기 위해 일치하는 폴더 및 파일 이름 패턴으로 rsync

Related 관련 기사

  1. 1

    폴더, 하위 폴더 및 여러 파일에서 재귀 적으로 찾기

  2. 2

    폴더를 무시하고 반복적으로 파일 이름 찾기 및 바꾸기

  3. 3

    찾기 및 이름 바꾸기를 사용하여 반복적으로 모든 파일과 폴더에 사용자 정의 문자열을 추가합니다.

  4. 4

    경로에서 폴더 이름 찾기 및 바꾸기

  5. 5

    일괄. 폴더 및 모든 하위 폴더의 파일 이름 바꾸기

  6. 6

    여러 파일을 여러 하위 폴더로 삭제, 이름 바꾸기 및 이동하는 배치 파일 만들기

  7. 7

    재귀 적 이름 바꾸기 파일 및 폴더

  8. 8

    폴더 및 하위 폴더에서 파일 찾기

  9. 9

    특수 문자로 파일 및 폴더 이름 바꾸기

  10. 10

    Android에서 연속 폴더 및 파일 이름 바꾸기

  11. 11

    배치로 파일 이동 및 하위 폴더 찾아보기

  12. 12

    일괄 적으로 폴더 및 하위 폴더 만들기

  13. 13

    Python 3을 사용하여 CSV 파일의 하위 폴더 / TXT에서 찾기 및 바꾸기

  14. 14

    python 및 os.walk ()를 사용하여 하위 폴더의 파일 이름 바꾸기

  15. 15

    파일 및 폴더 이름 검색 및 바꾸기

  16. 16

    .txt imput 파일로 폴더 및 하위 폴더 만들기

  17. 17

    csv / txt 파일에서 폴더 및 하위 폴더 만들기

  18. 18

    파일 이름을 기반으로 폴더 생성 및 생성 된 폴더의 하위 폴더로 파일 이동

  19. 19

    zip 파일 폴더 추출 및 이름 바꾸기

  20. 20

    Applescript-폴더 복제 후 내부 파일 이름 바꾸기 및 이름 바꾸기

  21. 21

    폴더 및 하위 폴더에서 특정 파일 유형 찾기

  22. 22

    Ubuntu 12.04 MNT 및 미디어에서 폴더 이름 바꾸기

  23. 23

    Ubuntu 12.04 MNT 및 미디어에서 폴더 이름 바꾸기

  24. 24

    배치 파일-상위 이름 및 (하위) 폴더 이름을 기준으로 파일 이름 변경

  25. 25

    폴더 및 하위 폴더에서 여러 파일 검색 python

  26. 26

    증분 폴더 복사 및 이름 바꾸기

  27. 27

    파일 찾기 및 폴더 이동

  28. 28

    폴더 찾기 및 이름 바꾸기 Windows Batch

  29. 29

    파일을 복사하기 위해 일치하는 폴더 및 파일 이름 패턴으로 rsync

뜨겁다태그

보관