在循环文件夹时更改工作目录

时间:2015-05-07 10:34:47

标签: linux loops directory working-directory cwd

目前我正在尝试在Linux命令行上对成像文件(scan.nii.gz)运行MRI软件(TBSS)。

扫描全部存储在不同参与者的单独文件夹中,文件名相同,因此:

/home/scans/participant1/scan.nii.gz

/home/scans/participant2/scan.nii.gz

/home/scans/participant3/scan.nii.gz

该软件的作用是在当前工作目录中创建分析结果。由于扫描具有相同的图像名称,因此它们会被覆盖。

我想遍历所有参与者文件夹,将其作为我的工作目录,然后执行tbss命令,这只是tbss_1_preproc scan.nii.gz.这样,文件将存储在当前工作目录中,即参与者目录。

在Linux中有没有明智的方法呢?

非常感谢!

1 个答案:

答案 0 :(得分:0)

在BASH中尝试。下面的代码未经测试,但它应该给你一个线索

#! /bin/bash

find . -name scan.nii.gz | while read line
do
   cd $(dirname "${line}")
   tbss_1_preproc $(basename "${line}")
done

将其放入文件中并使其可执行。将其复制到您的扫描文件夹并执行它。