[英]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.