Shell-Script

循環瀏覽文件夾並列出文件

  • August 24, 2019

我有一個名為“sample”的文件夾,裡面有 3 個文件。我想編寫一個 shell 腳本,它將讀取範例文件夾中的這些文件並使用 curl 將其發佈到 HTTP 站點。

我編寫了以下內容以列出文件夾內的文件:

for dir in sample/*; do
       echo $dir;
       done

但它給了我以下輸出:

sample/log

sample/clk

sample/demo

它在其中附加父文件夾。我希望輸出如下(沒有父文件夾名稱)

log

clk

demo

我該怎麼做呢?

用於basename去除文件的前導路徑:

for file in sample/*; do
   echo "$(basename "$file")"
done

雖然為什麼不:

( cd sample; ls )

假設您的外殼支持它,您可以使用參數擴展

for path in sample/*; do
   printf -- '%s\n' "${path##*/}"
done

或者您可以更改到該目錄並在那裡列出

引用自:https://unix.stackexchange.com/questions/356385