Bash 建立目錄

Abid Ullah 2023年1月30日
  1. 如果 Bash 中不存在資料夾,請建立一個資料夾
  2. 在 Bash 中使用 while 迴圈建立資料夾
  3. 在 Bash 中使用遞迴方法建立資料夾
Bash 建立目錄

本文演示瞭如何在 Bash 中不存在資料夾的情況下建立該資料夾。

如果 Bash 中不存在資料夾,請建立一個資料夾

我們使用 mkdir 命令在 Linux 中建立一個新目錄。我們使用 mkdir -p 來避免錯誤訊息。

使用 mkdir 命令,你必須一個一個地建立每個檔案,但是使用 mkdir-p,它會立即建立它。

如果 Bash 中不存在一個資料夾,我們可以通過兩種不同的方式建立一個資料夾。我們可以通過在函式中使用 while 迴圈或遞迴方法來做到這一點。

我們可以通過在 Bash 指令碼中使用這個 if[ -d $DirName ] 來檢查目錄是否已經存在的條件。我們將建立一個 Bash 函式,它將目錄名稱作為使用者的輸入。

如果目錄不存在,它將建立一個新目錄。如果目錄已經存在,它會提示使用者輸入不同的名稱。

在 Bash 中使用 while 迴圈建立資料夾

while 迴圈中,我們將使用 Bash 指令碼中的 read 命令從使用者那裡獲取輸入。使用者將輸入他想要建立的目錄名稱。

如果在這種情況下輸入的目錄名稱已經存在,if[ -d $Dirname] 條件將返回 true。它將向使用者顯示該目錄已存在的訊息。

它將提示使用者輸入不同的目錄名稱。這種檢查條件將一直持續到使用者在輸入中輸入一個尚不存在的目錄名稱。

當使用者輸入一個在這種情況下不存在的目錄名稱時,if[ -d $Dirname] 條件將返回 false,並且 else 塊將執行以建立新目錄。

它將向使用者顯示 the new directory has been successfully created,迴圈將中斷。

示例程式碼:

#!/bin/bash
function mkdirectory() {
while [ true ]
do
if [ -d $DirName ]
then
echo "Directory Already exists:"
echo "Enter Different Name: "
read DirName
else
mkdir "$DirName"
echo " the new directory has been successfully created:  $DirName"
break
fi
done
}
echo "Enter New DirName: "
read DirName
mkdirectory

Dir1 是使用 bash 中的 while 迴圈和迴圈中斷建立的

顯示 Dir1 和 Dir1 已存在的訊息

在 bash 中使用 while 迴圈成功建立了 Dir3

在 Bash 中使用遞迴方法建立資料夾

在遞迴方法中,使用者通過引數給出輸入。使用者輸入這樣的目錄名稱,./rcrdir.sh Dir

rcrdir.sh 是 Bash 檔名,Dir 是使用者想要建立的目錄名。 $1 用於獲取第一個引數(目錄名)。

如果使用者輸入的目錄名稱在這種情況下已經存在,if[ -d $1] 條件將返回 true。它將向使用者顯示該目錄已存在的訊息。

它將提示使用者輸入不同的目錄名稱。使用者輸入另一個名稱。

此檢查將繼續進行,直到使用者在輸入中輸入唯一的目錄名稱。

當使用者輸入一個在這種情況下不存在的目錄名稱時,if[ -d $1 ] 條件將返回 false,並且 else 塊將執行以建立新目錄。

它將向使用者顯示 the new directory has been successfully created,然後迴圈中斷。

示例程式碼:

#! /bin/bash
function mkdirectory(){
if [  -d $1  ]
then
echo "Directory aleady exists: "
echo "Enter different name:"
read directory
mkdirectory  $directory
else
mkdir $1
echo " the new directory has been successfully created: $1"
fi
}
mkdirectory $1

Dir1 是在 bash 中使用遞迴方法建立的

顯示 Dir1 已存在的訊息

使用 bash 中的遞迴方法建立的 Dir2

作者: Abid Ullah
Abid Ullah avatar Abid Ullah avatar

My name is Abid Ullah, and I am a software engineer. I love writing articles on programming, and my favorite topics are Python, PHP, JavaScript, and Linux. I tend to provide solutions to people in programming problems through my articles. I believe that I can bring a lot to you with my skills, experience, and qualification in technical writing.

LinkedIn

相關文章 - Bash Directory