簡體   English   中英

使用bash腳本創建文件夾和文件

[英]Folder and File creating with bash scripting

我必須創建50個文件夾,每個第五個文件夾中應該有2 * 2個文件,例如

folder1
.
.
folder5 - has 2 files in it
folder 6
.
.
folder 10 - has 4 files in it 
.
.
folder 15 - has 8 files in it 

這是我的代碼:

#!/bin/bash


n=1 
declare -i countFolder

for (( countFolder = 1; countFolder <= 50; countFolder++ )) 
do 
    mkdir Folder$countFolder
done

for (( countFolder = 5; countFolder <= 50; countFolder = countFolder+5 ))
do

    let "n = n * 2"

    for (( f = 0; f < n; f++ )) do
    cd Folder$countFolder && touch File$f.txt
    done
done

這里的問題是,你cd到一個目錄,但你永遠cd回來。

解決此問題的最簡單方法是在cd周圍添加括號。 這些括號開始一個子shell,因此cd保留在其中:

for (( f = 0; f < n; f++ )) do
  ( cd Folder$countFolder && touch File$f.txt ) 
done

這相當於但比手動cd ..cd ..

for (( f = 0; f < n; f++ )) do
  cd Folder$countFolder && { touch File$f.txt; cd ..; }
done

您需要進入目錄,制作文件,然后離開。 最有效的方法如下:

#!/bin/bash


n=1 
declare -i countFolder

for (( countFolder = 1; countFolder <= 50; countFolder++ )) 
do 
    mkdir Folder$countFolder
    ls
done

for (( countFolder = 5; countFolder <= 50; countFolder = countFolder+5 ))
do

    let "n = n * 2"
    cd Folder$countFolder
    for (( f = 0; f < n; f++ )) do
        touch File$f.txt
    done
    cd ..
done

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM