我有多個目錄,其中包含單個文件,並且所有目錄中的文件都具有相同的名稱。我需要通過其目錄名稱來重命名文件,以便我可以將它們收集到相同的目錄中。通過目錄名稱重命名目錄中的文件
/home/x/Desktop/s0.01-k5/x
/home/x/Desktop/s0.01-k7/x
/home/x/Desktop/s0.01-k10/x
我需要的是將所有的x重命名爲它們的目錄名稱。
我有多個目錄,其中包含單個文件,並且所有目錄中的文件都具有相同的名稱。我需要通過其目錄名稱來重命名文件,以便我可以將它們收集到相同的目錄中。通過目錄名稱重命名目錄中的文件
/home/x/Desktop/s0.01-k5/x
/home/x/Desktop/s0.01-k7/x
/home/x/Desktop/s0.01-k10/x
我需要的是將所有的x重命名爲它們的目錄名稱。
進入/ home/x/Desktop。有
for i in */x;do mv -vf "$i" "${i%/x}/${i%/x}";done
這個命令做你想做的。如果你想知道什麼會hapen,您只需提供一個 「回聲」 的 「MV」 測試:
for i in */x;do echo mv -vf "$i" "${i%/x}/${i%/x}";done
試試這個
CD /家庭/ X /桌面/
for i in $(ls); do mv $i/* $i/$i; done
[不要解析ls ](http://mywiki.wooledge.org/ParsingLs)。 你也必須引用每一個參數。 –
http://stackoverflow.com/questions/8886239/renaming-file-with-same-name-as-directory-name應該幫助,只是忽略有關空格部分 – chk
參見[更佳基於多個模式重命名文件的方式](http://stackoverflow.com/questions/20629302/better-way-to-rename-files-based-on-multiple-patterns/25597051#25597051) –