폴더의 첫 번째 수준 하위 폴더에 bash 작업 적용

폴더의 첫 번째 수준 하위 폴더에 bash 작업 적용

다음과 같은 폴더 구조가 있다고 가정해 보겠습니다.

parent1
   |----- subfolder1
              |--- x
              |--- y
   |----- subfoldern
              |--- x
              |--- y
parentn
   |----- subfoldern1
              |--- x
              |--- y
   |----- subfoldernn
              |--- x
              |--- y

상위 폴더를 입력으로 받고 첫 번째 수준 하위 폴더에 일부 고정 작업을 적용하는 bash 스크립트가 필요합니다. 예를 들어:

$> myScript parent1

그러면 첫 번째 수준 하위 폴더(subfolder1 및 하위 폴더)가 표시되고 각 호출에 대해 고정된 작업 집합이 제공됩니다. 예를 들면 다음과 같습니다.

  1. ls 하위 폴더 1
  2. du 하위 폴더 2

이 기능을 구현하는 bash 스크립트를 제공할 수 있습니까?

중요: 작업 중 하나가 실패하면 폴더를 건너뛰고 스크립트가 다음 폴더로 이동합니다.

답변1

  • 패턴 끝에 슬래시를 사용해서만 디렉터리를 반복할 수 있습니다.
  • 명령 사이에 명령을 사용하면 첫 번째 실패 시 일련의 명령이 중단되도록 할 수 있습니다 &&.

따라서 모든 내용은 다음과 같이 요약됩니다.

for d in parent/*/ ; do ls "$d" && du "$d" ; done 

답변2

#!/bin/bash

folder=$1

# Find the first level of folders within the specified folder
for child in $(find $folder -mindepth 1 -maxdepth 1 -type d); do
    # If the command fails, # bash will carry on to the next folder anyway :)
    echo $child  # Replace with magic command
done

관련 정보