使用 for 循环检查不同文件夹中的文件

使用 for 循环检查不同文件夹中的文件

我有 2 个文件夹 - 文件夹 1 和文件夹 2。

我在folder1中,需要执行一个shell脚本来搜索folder2中的所有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

相关内容