2017-09-08 92 views
-2

IM的文件,試圖重命名文件夾中的文件。 TEST1/accepted_hits.bw到test1.bw遞歸重命名的文件夾名稱

+0

你能舉個例子嗎?如果您有./a/accepted_hits.bw,那麼預期結果是./a/a? – Lety

+2

這是什麼問題? – hek2mgl

+0

@賴,我有文件./a/accepted_hits.bw,./b/accepted_hits.bw。現在想要將其更改爲./a.bw和./b.bw – beginner

回答

1

試試這個命令:

find . -iname "accepted_hits.bw" | while read file; do dir=$(basename $(dirname $file)); mv $file ${dir}.bw; done 

其中:

  • find命令遞歸搜索文件,其名稱是 「accepted_hits.bw」
  • -i選項表示不區分大小寫
  • 符號|表示輸出爲find命令是用於while命令
  • while read file循環每行輸入和dodone

find命令之間執行命令將輸出:

./a/accepted_hits.bw 
./b/accepted_hits.bw 

所以命令的塊將執行兩次。第一行的dirname $file獲得./adir=$(basename $(dirname $file))是目錄的名稱,在此示例中爲a。在.目錄

mv命令移動文件accepted_hits.bw並將其重命名爲${dir}.bw

使用man命令查看每個命令的手冊頁。