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