다음과 같은 폴더 구조가 있다고 가정해 보겠습니다.
parent1
|----- subfolder1
|--- x
|--- y
|----- subfoldern
|--- x
|--- y
parentn
|----- subfoldern1
|--- x
|--- y
|----- subfoldernn
|--- x
|--- y
상위 폴더를 입력으로 받고 첫 번째 수준 하위 폴더에 일부 고정 작업을 적용하는 bash 스크립트가 필요합니다. 예를 들어:
$> myScript parent1
그러면 첫 번째 수준 하위 폴더(subfolder1 및 하위 폴더)가 표시되고 각 호출에 대해 고정된 작업 집합이 제공됩니다. 예를 들면 다음과 같습니다.
- ls 하위 폴더 1
- 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