【问题标题】:Bash script to make a tree directories用于创建树目录的 Bash 脚本
【发布时间】:2014-06-16 11:09:39
【问题描述】:

我这里有一个脚本,这个脚本会列出当前工作目录中的所有目录,并创建子目录来制作目录树,但问题是它无法创建目录。

谁能帮我解决这个问题?该脚本必须在特定目录和子目录中创建目录

LIST=`ls -D`
for i in $LIST;
do
mkdir -p $i"/Dir3/Dir4/"
done

【问题讨论】:

    标签: linux bash mkdir


    【解决方案1】:

    Don't parse the output of ls.

    这是“正确”遍历目录的一种方法:

    for dir in */; do
        #       ^-- the trailing slash makes $dir expand to directories only
        [ -d "${dir}" ] || continue
        mkdir -p "${dir}/Dir3/Dir4/"
    done
    

    【讨论】:

      【解决方案2】:
      LIST=`find . -maxdepth 1 -mindepth 1 -type d`
      for i in $LIST;
      do
          mkdir -p $i/Dir3/Dir4
      done
      

      【讨论】:

      • 首先,find . -maxdepth 1 -mindepth 1 -type d 表示查找当前文件夹下的所有目录,并保存在 LIST 变量中。其次,迭代所有目录,以及 mkdir 子目录。
      • 我怎样才能制作一个脚本来创建一个不在当前目录中的目录。例如在 /var 中,可以说.. 我想在那里创建一个目录。什么是正确的脚本?
      • find /var替换find .
      【解决方案3】:

      你会问这样的问题吗?

      find * -type d -exec mkdir -p /var/abc/{} \;
      

      它将从当前文件夹中获取目录和子目录,并在/var/abc下创建新的相同文件夹

      【讨论】:

        最近更新 更多