for 루프를 사용하여 다른 폴더의 파일 확인

for 루프를 사용하여 다른 폴더의 파일 확인

폴더1과 폴더2라는 2개의 폴더가 있습니다.

나는 폴더1에 있고 폴더2의 모든 csv 파일을 검색하려면 쉘 스크립트를 실행해야 합니다.

현재 스크립트는 현재 폴더에서 *.csv를 확인합니다.folder2를 가리키는 방법은 무엇입니까?

for file in *.csv
do
  split -l 50000 -d -a 4  "$file" "$file"
done

답변1

folder1및 둘 다 폴더 folder2아래에 있다고 가정하면 parent,

parent
   folder1
   folder2

for 루프를 다음과 같이 다시 작성할 수 있습니다.

for file in ../folder2/*.csv

일반적으로 이러한 루프에는 항상 절대 경로를 제공할 수 있습니다.

for file in /home/username/parent/folder2/*.csv
do
    split -l 50000 -d -a 4  "$file" "$file"
done

위의 루프는 현재 있는 디렉터리에 관계없이 작동합니다.

답변2

무언가에 대한 디렉토리를 변경해야 할 때마다 및를 사용하여 원래 디렉토리로 다시 변경할 수 있습니다 pushd.popd

pushd /path/to/folder2
for file in *.csv
do
  split -l 50000 -d -a 4  "$file" "$file"
done
popd

관련 정보