在UNIX中的所有子目录下打印所有文件内容

时间:2018-12-24 22:12:00

标签: bash unix

我有一个shell脚本代码,目的是从我所在的子目录中打印所有子目录下文件的所有内容。尽管出现一些错误。

我使用以下命令运行shell脚本:./ thisCodeScriptFile

#!/bin/bash
for i in *; do
   if [ -d $i ]; then
      cd $i
      ~/thisCodeScriptFile
      cd ..
   else
      cat $i >> ~/resultFile
   fi
done

我收到的错误:

cat: '*': No such file or directory
cat: '*': No such file or directory
cat: '*': No such file or directory
cat: '*': No such file or directory
cat: '*': No such file or directory
cat: '*': No such file or directory
cat: resultFile: input file is output file
cat: '*': No such file or directory
cat: '*': No such file or directory
cat: '*': No such file or directory

2 个答案:

答案 0 :(得分:0)

如果需要,您可以使用它。简单而有效

 find . -type f -printf '%f\r\n'

答案 1 :(得分:0)

cat: '*': No such file or directory错误是由于文件夹为空。我认为另一个错误是因为您启动了主文件夹中的脚本。建议您修改脚本以测试空文件夹,如下所示:

#!/bin/bash
for i in *; do
   if [ -d $i ]; then
      cd $i
      if [ ! -z "$(ls -A .)" ]; then
          ~/thisCodeScriptFile
      fi
      cd ..
   else
echo $i
      cat $i >> ~/resultFile
   fi
done