フォルダ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