shell中的“for”循环遍历目录

时间:2014-02-25 08:51:36

标签: shell for-loop subdirectory

我有一个包含24个子目录的目录,没有按时间顺序排列 我需要进入一个子目录,在那里解压缩文件然后在解压缩文件上调用“tophat”命令,然后移动到下一个子目录。循环应该通过这些命令遍历所有子目录。 我真的不知道如何创建这个循环(我需要它在显示器上运行而不是按照数字顺序运行)

(当然,许多使用RNA-seq结果的人都熟悉这个问题) 如果有人可以帮助我 我会非常感激

3 个答案:

答案 0 :(得分:1)

for d in "/path/to/"*/
do
    cd "$d" || continue
    unzip the_file.zip
    tophat the_file
done

答案 1 :(得分:0)

使用find

find /path -type d -print | \
while read path ; do
    ...
done

注意:当文件名包含换行符时,此循环会中断。

答案 2 :(得分:-1)

使用for循环

for directory in `find /path -type d -print`
do
    cd "$directory"
    unzip zip_filename
    sh zip_dir/script_file.sh &
done