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

何かのディレクトリを変更する必要があるときはいつでも、およびを使用して元のディレクトリに戻すことができますpushdpopd

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

関連情報