簡體   English   中英

如何在Unix Shell腳本中為任何目錄結構構建文件夾路徑

[英]how to build a folder path in Unix shell scripting for any directory structure

我的應用程序具有類似的文件夾結構

/PNRPHD1/ex1/11.txt

/PNRPHD1/ex1/ex2/11.txt

/PNRPHD1/ex1/ex2/ex3/23.txt

/PNRPHD1/ex1/ex2/34.txt

/PNRPHD1/ex1/ex3/sp4/sp3/4334.txt,

但是/ PNRPHD1是主文件夾 ,在該文件夾中,我需要每次進行迭代並轉到最后一級,並檢查文件是否存在,在該目錄中是否存在,如果File是目錄的內容,那么我需要構建那條路,走出那個循環。 並且我應該將上述路徑作為變量的輸出。

注意: 在以上目錄結構中,每個目錄可以包含另一個子目錄或一個文件,但不會同時包含這兩個目錄

任何人都可以建議我嘗試在IF循環中執行此操作嗎,但是代碼太多,我想用最少的代碼實現

DIR_REG = /PNRPHD1;
    ls -p $DIR_REG | while read -r dir
    do
        echo "directory under is  -- " ${dir} >>${DEBUG_LOG_FILE}
        BUP="/cygdrive/d/psoft/${PSFT_SID}/${dir}";

        ls -p $BUP | while read -r dir1
        do 
            if [ -f "${BUP}/${dir1}" ]; then 
                mkdir -p "${BUP}backup"
                echo "level of directory  -- " ${BUP}/${dir1} >>${DEBUG_LOG_FILE}
            else
                echo "level of directory  -- " ${BUP}/${dir1} >>${DEBUG_LOG_FILE}
            fi

        done

    done

我正在尋找一個更好的shell腳本,並簡潔地完成所需的任務。

更新 :
我期望循環的輸出在每次迭代中都應該有一個可變的輸出。 第一種情況:/ ex1 /第二種情況:/ ex1 / ex2第三種情況:ex1 / ex2 / ex3 /第四種情況:/ ex1 / ex2 / ex3 /第三種情況:/ ex1 / ex3 / sp4 / sp3 /

為什么不創建一次您需要的目錄樹。 然后使用tar創建一個tar文件。 您需要相同目錄結構的任何計算機都只需解壓縮tar文件即可。

可以在這里找到tar的手冊頁

我嘗試使用find命令find。 型f打印 列出所有文件類型

找 。 型d打印 列出所有目錄類型

一旦我們獲得文件或目錄的列表,請使用DirName命令獲取路徑

暫無
暫無

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

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