當前位置:首頁 » 知網查重 » shellfor遍歷目錄

shellfor遍歷目錄

發布時間: 2021-03-21 03:10:57

㈠ 如何用shell遍歷一個目錄下的所有子目錄

SAVEIFS="$IFS"
IFS="
"
hypen="------------------------------------------------------------------------------------"
printhypen()
(
tab=$(($1*4))
if[$tab-gt0]
then
printf"%-.${tab}s""$hypen"
fi
)
traverdir()
(
pushd"$1">/dev/null2>&1
tab="$2"
forfilein`ls-1`
do
iftest-d"$file"
then
printhypen$tab
echo"<dir>$file"
traverdir"$file""$((tab+1))"
else
printhypen$tab
echo"$file"
fi
done
popd>/dev/null2>&1
)
read-p"請輸入要遍歷的目錄:"dir
traverdir"$dir"0
IFS="$SAVEIFS"

㈡ linux shell 命令怎麼遍歷目錄

先設定實驗環境:

# 造 5 個 目錄,每個目錄下,造 3 個 文件和兩個子目錄如下:

cd $HOME/tmp
for i in d1 d2 d3 d4 d5
do
mkdir -p $i
touch $i/1.txt $i/2.txt $i/3.txt
mkdir -p $i/tmp1 $i/tmp2
done

# 檢驗測試環境:

$ ls -lR d1
total 0
-rw-r--r-- 1 wenlee comm 0 Dec 22 10:35 1.txt
-rw-r--r-- 1 wenlee comm 0 Dec 22 10:35 2.txt
-rw-r--r-- 1 wenlee comm 0 Dec 22 10:35 3.txt
drwxr-sr-x 2 wenlee comm 256 Dec 22 10:35 tmp1/
drwxr-sr-x 2 wenlee comm 256 Dec 22 10:35 tmp2/

# 利用下列腳本來實現你要做的:

cd $HOME/tmp
for i in */1.txt
do
echo "Found $i, save $i and remove everything else under $(dirname $i)/"
save_this_file=$(basename $i)
curr_dir=$(dirname $i)
# 把這個1.txt暫時存到/tmp裡面去,為了避免已經有同樣的檔案名稱在/tmp,加上$$ (i.e. PID)
mv $i /tmp/${save_this_file}.$$
rm -rf $curr_dir
mkdir -p $curr_dir
mv /tmp/${save_this_file}.$$ $curr_dir
done

# 屏幕執行輸出如下:

Found d1/1.txt, save d1/1.txt and remove everything else under d1/
Found d2/1.txt, save d2/1.txt and remove everything else under d2/
Found d3/1.txt, save d3/1.txt and remove everything else under d3/
Found d4/1.txt, save d4/1.txt and remove everything else under d4/
Found d5/1.txt, save d5/1.txt and remove everything else under d5/

# 復驗實驗環境:

$ ls -l d?/*
-rw-r--r-- 1 wenlee comm 0 Dec 22 10:35 d1/1.txt
-rw-r--r-- 1 wenlee comm 0 Dec 22 10:35 d2/1.txt
-rw-r--r-- 1 wenlee comm 0 Dec 22 10:35 d3/1.txt
-rw-r--r-- 1 wenlee comm 0 Dec 22 10:35 d4/1.txt
-rw-r--r-- 1 wenlee comm 0 Dec 22 10:35 d5/1.txt

OK?
thanks!

㈢ 用shell層級遍歷dir目錄,統計文件總數量、總大小,並按擴展名分類統計各種文件的數目、總大小。

#!/bin/bash
functiondirectory(){
forfilein$(ls$1)
do
basepath="$1/$file"
if[-d"$basepath"];then
echo"|-directory:$file"$(-h$basepath|cut-f1)
directory$basepath
elif[-f"$basepath"];then
echo"|--file:$file"$(-h$basepath|cut-f1)
fi
done
}

directory$1
調用方法:./testfind.sh你要遍歷的路徑
我只是簡單的寫了一個,大致功能的思想如此,你也可以在此基礎上進行擴展,不過好像應該有
現成的,你網上搜一搜吧。。

㈣ 我用shell編寫的遍歷當前目錄及所有子目錄找mac.c這個文件,有問題希望大家幫忙看一下

elif["$file"="mac.c"]

這句判斷表達式里少了一個空格。

應為:

elif["$file"="mac.c"]

㈤ shell 遍歷目錄,提取所有特定文件U,復制出來並重命名

@echooff
for/f"delims="%%ain('dir/ad/b')do(
pushd%%a
for/f"delims="%%bin('dir/a-d/b/sU')do(
"%%b""另一個文件夾\%%a_%%b"
)
popd
)

保存為.bat文件,放在C:UsersA下執行

㈥ linux shell中的遍歷目錄並刪除目錄下與目錄名相同的文件

;do
if[-d/$i/$i];then
rm-rf/$i/$i
fi
done


代碼如上,但如樓上所說,!慎用 !

㈦ shell 循環遍歷目錄問題

當while讀取管道輸出的結果時,肯定會出現這樣的問題。
因為使用for,while,until,if,case這些命令時用到了管道,那麼bash會產生一個子shell來運行它們。可以想像count在循環體中能夠正確的計數,一旦while執行完畢,子shell完成,其內部的變數count就消失了。因而得到的結果是循環體外echo永遠是0!
之前也遇到過這樣的問題,網上找的一些解決方法不是太理解,我就用了一個比較笨的辦法:
先將ls /var/tmp/tomcat-logs -1的結果寫到文件,再用while來讀文件來計數,用完後再將臨時文件刪除即可。
ls /var/tmp/tomcat-logs -1 >/tmp/test.txt
while read fn; do
echo $count
customer[$count]=$fn
echo ${customer[$count]}
count=$[$count+1]
done </tmp/test.txt
echo $count
rm /tmp/test.txt

㈧ 在windows中用shell遍歷一個文件夾下得所有文件並對文件執行同一個指令

你的for循環中循環的是$PATH ,他只是代表這個路徑,並不表示裡面的文件名。

㈨ shell 遍歷目錄中所有文件 改名

#!/bin/bash
base_dir=$(dirname$0)
fordirin$(ls$base_dir);do
current_dir="$base_dir/$dir"
if[!-d$current_dir];then
continue
fi
forold_file_namein$(ls$current_dir);do
old_file="$current_dir/$old_file_name"
if[!-f$old_file];then
continue
fi
new_file_name="$current_dir/${old_file_name}_${dir}"
mv$old_file$new_file_name
done
done

改名的部分幫你寫了,放到把腳本放到你說的有好多目錄的那個目錄里執行就可以了

資料庫的部分自己想吧

㈩ shell怎麼遍歷一個文件夾下所有文件

# find . -type f
./a
./normal/log-1
./normal/log-2
./normal/log-3

通過find找到文件
那麼遍歷就用循環
for i in `find . -type f`
do
echo $i

done

熱點內容
塗鴉論文 發布:2021-03-31 13:04:48 瀏覽:698
手機資料庫應用 發布:2021-03-31 13:04:28 瀏覽:353
版面217 發布:2021-03-31 13:04:18 瀏覽:587
知網不查的資源 發布:2021-03-31 13:03:43 瀏覽:713
基金贖回參考 發布:2021-03-31 13:02:08 瀏覽:489
懸疑故事範文 發布:2021-03-31 13:02:07 瀏覽:87
做簡單的自我介紹範文 發布:2021-03-31 13:01:48 瀏覽:537
戰略地圖參考 發布:2021-03-31 13:01:09 瀏覽:463
收支模板 發布:2021-03-31 13:00:43 瀏覽:17
電氣學術會議 發布:2021-03-31 13:00:32 瀏覽:731